HttpServlet

一、HttpServletRequest概述

1.1、HttpServletRequest简介

  HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。

  request就是将请求文本封装而成的对象,所以通过request能获得请求文本中的所有内容,请求头、请求体、请求行

二、详解HttpServletRequest

2.1、请求行

  举例:Get  http://localhost:8080/day09/servlet/req1?username=zs  http/1.1

  相关方法:

    getMethod();     获得请求方式

    getRequestURL();    返回客户端发出请求时的完整URL。

    getRequestURI();    返回请求行中的资源名部分。

    getContextPath();    当前应用的虚拟目录 

    getQueryString() ;    返回请求行中的参数部分。

2.2、请求头  

  我们可以查看任意一个网页,它都是有请求头的。

  相关方法: 

    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

5.4、重定向

  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,就可以省略项目名了。就是这样来区别。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券