HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。
request就是将请求文本封装而成的对象,所以通过request能获得请求文本中的所有内容,请求头、请求体、请求行
举例:Get http://localhost:8080/day09/servlet/req1?username=zs http/1.1
相关方法:
getMethod(); 获得请求方式
getRequestURL(); 返回客户端发出请求时的完整URL。
getRequestURI(); 返回请求行中的资源名部分。
getContextPath(); 当前应用的虚拟目录
getQueryString() ; 返回请求行中的参数部分。
我们可以查看任意一个网页,它都是有请求头的。
相关方法:
String getHeader(String name) 根据头名称得到头信息值
long getDateHeader(java.lang.String name) 获得指定头内容Date
int getIntHeader(java.lang.String name) 获得指定头内容int
Enumeration getHeaderNames() 得到所有头信息name Enumeration getHeaders(String name) 根据头名称得到相同名称头信息值
举例1:Enumeration getHeaderNames() 得到所有头信息name
1)重定向运行原理
重定向机制的运作流程 第一步:用户在浏览器端输入特定URL,请求访问服务器端的某个组件 第二步:服务器端的组件返回一个状态码为302的响应结果。 第三步:当浏览器端接收到这种响应结果后,再立即自动请求访问另一个web组件 第四步:浏览器端接收到来自另一个web组件的响应结果。 HttpServeltResponse的sendRedirect(String location)用于重定向
2)具体实现
方式一:手动方案
response.setStatus(302); //状态码302就代表重定向
response.setHeader("location","http://www.baidu.com");
方式二:使用封装好的,通过response.sendRedirect("http://www.baidu.com");
特点:服务器告诉浏览器要跳转的页面,是浏览器主动去跳转的页面,浏览器知道,也浏览器的地址栏中url会变,是浏览器重新发起一个请求到另外一个页面,所以request是重新发起的,跟请求转发不一样。
注意:response.sendRedirect(path); //
第一种:response.sendRedirect("/test01/MyServlet01"); //使用了"/"开头,说明是从web站点根开始,所以需要写test01/MyServlet01
第二种:response.sendRedirect("MyServlet01"); //没有使用"/"开头,说明是从web项目根开始,那么就无需写test01了。
注意:重定向没有任何局限,可以重定向web项目内的任何路径,也可以访问别的web项目中的路径,并且这里就用"/"区分开来,如果使用了"/"开头,就说明我要重新开始定位了,不访问刚才的web项目,自己写项目名,
如果没有使用"/"开始,那么就知道是访问刚才那个web项目下的servlet,就可以省略项目名了。就是这样来区别。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。