HttpServletRequest对象代表客户端浏览器的请求,当客户端浏览器通过HTTP协议访问服务器时,HTTP请求中的所有信息都会被Tomcat所解析并封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。
获取请求信息
- req.getRequestURL()
返回客户端浏览器发出请求时的完整URL。
- req.getRequestURI()
返回请求行中指定资源部分。
- req.getRemoteAddr()
返回发出请求的客户机的IP地址。
- req.getLocalAddr()
返回WEB服务器的IP地址。
- req.getLocalPort()
返回WEB服务器处理Http协议的连接器所监听的端口。
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* 获取请求信息
*/
public class GetRequestinfoServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取浏览器发出请求的完整url
String requestUrl = req.getRequestURL().toString();
//获取请求行中的指定资源部分
String requesturi = req.getRequestURI();
//获取发送请求的客户端ip地址
String clientAddr = req.getRemoteAddr();
//获取服务端ip地址
String serverAddr = req.getLocalAddr();
//获取服务端监听端口
int port = req.getLocalPort();
PrintWriter printWriter = resp.getWriter();
printWriter.println(requestUrl);
printWriter.println(requesturi);
printWriter.println(clientAddr);
printWriter.println(serverAddr);
printWriter.println(port);
}
}
<servlet>
<servlet-name>getRequestServlet</servlet-name>
<servlet-class>com.itbaizhan.GetRequestinfoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>getRequestServlet</servlet-name>
<url-pattern>/getRequestServlet.do</url-pattern>
</servlet-mapping>