美文网首页
JavaWeb-Request

JavaWeb-Request

作者: 青丶空 | 来源:发表于2020-03-09 11:48 被阅读0次

    Request


    1. request与response对象的原理

    1. request和response对象都是由服务器创建的,我们使用request和response的对象即可
    2. request是用来获取请求信息的,response对象用于设置响应消息的

    2. request对象的继承机构:

    ServletRequest(接口) --继承--> HttpServletRequest(接口) --实现--> org.apache.catalina.connector.RequestFacade 类(tomcat)

    3. request的功能

    1. 获取请求行数据 GET /hsh/demo5?name=zhangsan HTTP/1.1
    • 方法:
      1. 获取请求方式 GET
        • String getMethod()
      2. 获取虚拟目录 /hsh
        • String getContextPath()
      3. 获取Servlet资源路径 /hsh/demo5?name=zhangsan
        • String getServletPath()
      4. 获取get方法请求参数 name=zhangsan
        • String getQueryString()
      5. 获取请求URI /hsh/demo5
      6. 获取协议及版本
        • String getProtocol()
      7. 获取客户端的IP地址
        • String getRemoteAddr()
    1. 获取请求头数据
    • 方法:
      1. 通过请求头名称获取请求头值
        • String getHeader(String name)
      2. 获取所有请求头名称
        • Enumeration<String> getHeaderNames()
    1. 获取请求体数据

    只有POST请求方式,才有请求体,在请求体中封装了POST请求的请求参数

    1. 其他功能:
      1. 获取请求参数的通用方式:无论是使用get方法还是post方法都可以使用下列的方法来获取请求参数
        • String getParameter(String name); 根据参数名称获取参数值 例如: username=zhangsan&password=123
        • String[] getParameterValues(String name); 根据参数名称获取参数值的数组 例如: hobby=game&hobby=study
        • Enumeration<String> getParameterNames(); 获取所有请求参数名称
        • Map<String,String[]> getParameterMap(); 获取所有参数的Map集合
      2. 中文乱码问题
        • get方式: tomcat内部解决了get方式的乱码
        • post方式: 依然会乱码,解决方案为在获取参数前,首先设置request的编码 -> request.setCharacterEncoding("utf-8");
      3. 请求转发
        1. 步骤:
          1. 通过request对象获取请求转发器对象: RequestDispatcher getRequestDispatcher(String path);
          2. 使用RequestDispatcher对象来进行转发: forward(Servlet request,Servlet response);
        2. 特点:
          1. 浏览器地址栏不会发生改变
          2. 只能转发到服务器内部资源中(无法访问外部其他资源)
          3. 转发是一次请求
      4. 共享数据
        1. 域对象: 一个有作用范围的对象,可以在范围内共享数据
        2. request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
        3. 方法:
          • void setAttribute(String name,Object obj):存储数据
          • Object getAttitude(String name):通过键获取值
          • void removeAttribute(String name):通过键移除键值对
      5. 获取ServletContext: ServletContext getServletContext()

    相关文章

      网友评论

          本文标题:JavaWeb-Request

          本文链接:https://www.haomeiwen.com/subject/vywudhtx.html