Servlet之Request对象

版权声明:转载请标明出处,谢谢合作 https://blog.csdn.net/Rao_Limon/article/details/82805602

      在Servlet接口中,Service(ServletRequest request,ServletResponse response) 方法中存在ServletRequest类型的参数。ServletRequest类表示的是来自客户端的请求。当Servlet容器接收到客户端要求访问特定Servlet请求时,容器先解析客户端的原始请求数据,将它包装成一个ServletRequest对象。当容器调用Servlet对象的 service() 方法时,就可以把ServletRequest对象作为参数传给 service() 方法。

      ServletRequest接口提供了一系列用于读取客户端请求数据的方法,我介绍的方法主要有如下:

getRemoteAddr() 返回客户端的IP地址
getRemoteHost() 返回客户端的主机名
getRemotePort() 返回客户端的FTP端口号
getLocalAddr() 返回服务器端的IP地址
getLocalName() 返回服务器端的主机名
getLocalPort() 返回服务器端的FTP端口端口号
getParameter() 获取URL中的请求参数
setAttribute() 设置当前请求范围内的指定属性
getAttribute() 获取当前范围内的指定属性
removeAttribute() 删除当前范围内的指定属性
getProtocol() 返回客户端与服务器端通信所使用的协议的名称及版本号

代码:

System.out.println("客户端IP地址 = " + request.getRemoteAddr());
System.out.println("客户端主机名 = " + request.getRemoteHost());
System.out.println("客户端FTP端口号 = " + request.getRemotePort());
System.out.println("服务器端IP地址 = " + request.getLocalAddr());
System.out.println("服务器端主机名 = " + request.getLocalName());
System.out.println("服务器端FTP端口端口号 = " + request.getLocalPort());
System.out.println("客户端与服务器端通信所使用协议的名称及版本号 = " + request.getProtocol());

最终结果

       HttpServletRequest接口是ServletRequest接口的子接口。HttpServlet类的重载servlet()方法、doGet()方法和doPost()等方法都有一个HttpServletRequest类型的参数

       HttpServletRequest接口提供了用于读取HTTP请求中的相关信息方法,介绍的方法主要有以下:

getContextPath() 返回客户端所请求访问的Web应用的URL入口,即Web项目名
getHeader(String name) 返回HTTP请求头的指定内容
getHeaderNames() 返回一个Enumeration对象,它包含了HTTP请求头部的所有项目名
getMethod() 返回HTTP请求方式
getRequestURL() 返回URL访问路径
getRequestURI() 返回HTTP请求的URI路径
getQueryString() 返回HTTP请求中的查询字符串
getCookies() 返回HTTP请求中的所有Cookie

代码:

System.out.println("获取项目名 = " + request.getContextPath());
System.out.println("获取HTTP请求头的指定内容 = " + request.getHeader("Host"));
System.out.println("获取客户端浏览器和操作系统信息 = " + request.getHeader("user-agent"));

System.out.println("\n---遍历请求头---");
Enumeration eu = request.getHeaderNames();
while(eu.hasMoreElements()){
	String headerName = (String)eu.nextElement();
	System.out.println(headerName + " = " + request.getHeader(headerName));
}
System.out.println("---遍历结束---\n");

System.out.println("获取HTTP请求方式 = " + request.getMethod());
System.out.println("获取HTTP请求的URI路径 = " + request.getRequestURI());
System.out.println("获取HTTP请求的URL路径 = " + request.getRequestURL());
System.out.println("获取HTTP请求中的查询字符串 = " + request.getQueryString());
System.out.println("返回HTTP请求中的所有Cookie = " + request.getCookies());

访问路径:

最终结果:

JSP页面的常见获取

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
System.out.println("获取协议名 = " + request.getScheme());
System.out.println("获取服务器 = " + request.getServerName());
System.out.println("获取端口号 = " + request.getServerPort());
System.out.println("获取项目名 = " + request.getContextPath());

猜你喜欢

转载自blog.csdn.net/Rao_Limon/article/details/82805602
今日推荐