HttpServletRequest对象代表客户端浏览器的请求,当客户端浏览器通过HTTP协议访问服务器时,HTTP请求中的所有信息都会被Tomcat所解析并封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。

获取请求信息

  • req.getRequestURL()

返回客户端浏览器发出请求时的完整URL。

  • req.getRequestURI()

返回请求行中指定资源部分。

  • req.getRemoteAddr()

返回发出请求的客户机的IP地址。

  • req.getLocalAddr()

返回WEB服务器的IP地址。

  • req.getLocalPort()

返回WEB服务器处理Http协议的连接器所监听的端口。

  1. import javax.servlet.ServletException;
  2. import javax.servlet.http.HttpServlet;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import java.io.IOException;
  6. import java.io.PrintWriter;
  7. /**
  8. * 获取请求信息
  9. */
  10. public class GetRequestinfoServlet extends HttpServlet {
  11. @Override
  12. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  13. //获取浏览器发出请求的完整url
  14. String requestUrl = req.getRequestURL().toString();
  15. //获取请求行中的指定资源部分
  16. String requesturi = req.getRequestURI();
  17. //获取发送请求的客户端ip地址
  18. String clientAddr = req.getRemoteAddr();
  19. //获取服务端ip地址
  20. String serverAddr = req.getLocalAddr();
  21. //获取服务端监听端口
  22. int port = req.getLocalPort();
  23. PrintWriter printWriter = resp.getWriter();
  24. printWriter.println(requestUrl);
  25. printWriter.println(requesturi);
  26. printWriter.println(clientAddr);
  27. printWriter.println(serverAddr);
  28. printWriter.println(port);
  29. }
  30. }
  1. <servlet>
  2. <servlet-name>getRequestServlet</servlet-name>
  3. <servlet-class>com.itbaizhan.GetRequestinfoServlet</servlet-class>
  4. </servlet>
  5. <servlet-mapping>
  6. <servlet-name>getRequestServlet</servlet-name>
  7. <url-pattern>/getRequestServlet.do</url-pattern>
  8. </servlet-mapping>

image.png