Request

Request

Request和Response对象的原理:

  1. Request和Response对象是由服务器创建的。我们来使用它们。
  2. Request对象来获取请求消息,Response对象来设置响应消息。

Request对象继承体系结构

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

Request功能:

  1. 获取请求消息数据:

    1. 获取请求行数据:
      • 方法:
        1. 获取请求方式:String getMethod()
        2. 获取虚拟目录:String getContextPath()
        3. 获取Servlet路径:String getServletPath()
        4. 获取GET方式请求参数:String getQueryString()
        5. 获取请求URI:
          • String getRequestURI():返回虚拟目录加servlet路径
          • String getRequestURI():返回浏览器地址栏中的地址,即http://…….形式的
        6. 获取协议及版本:String getProtocol()
        7. 获取客户机ip地址:String getRemoteAddr()
    2. 获取请求头数据:
      • 方法:
        • String getHeader(String name):通过请求头的名称获取请求头的值
        • Enmueration< string> getHeaderNames():获取所有请求头的名称
    3. 获取请求体数据:
      • 请求体只有在POST请求方式中才有,请求体中封装了POST请求的参数
      • 步骤:
        1. 获取流对象
          • BufferedReader getReader():获取字符输入流,只能操作字符数据
          • ServletInputStream getInputStream():获取字节输入流,可以操作所有数据类型数据
        2. 再从流对象中拿数据
  2. 其他功能:

    1. 获取请求参数通用方式:

      1. String getParameter(String name):根据参数名称获取参数值
      2. String[] getParameterValues(String name):根据参数名称获取参数值的数组
      3. Enmueration< string> getParameterNames():获取所有请求的参数名称
      4. Map< String, String[]> getParameterMap():获取所有参数的Map集合
      • 中文乱码问题:
        • get方式:tomcat8已经将get方式乱码问题解决了
        • post方式:在获取参数前,设置request的编码request.setCharacterEncoding("utf-8")
    2. 请求转发:一种在服务器内部的资源跳转方式

      • 步骤:
        1. 通过request对象获取请求转发对象:RequestDispatcher getRequestDispatcher(String path)
        2. 使用RequestDispatcher对象来进行转发:forward(ServletRequest request, ServletResponse response)
      • 特点:
        1. 浏览器地址栏路径不发生变化
        2. 只能转发到当前服务器内部资源中
        3. 转发是一次请求
    3. 共享数据:

      • 域对象:一个有作用范围的对象,可以在范围内共享数据
      • request域:代表一次请求的范围,一般用于请求转发中的多个资源中共享数据
      • 方法:
        1. void setAttribute(String name, Object obj):存储数据
        2. Object getAttribute(String name):通过键获取值
        3. void removeAttribute(String name):通过键移除键值对
    4. 获取ServletContext:

      • ServletContext getServletContext()

BeanUtils工具类,简化数据封装

  • 用于封装JavaBean的

  • JavaBean:标准的java类

    • 要求:

      1. 类必须被public修饰
      2. 必须提供空参的构造器
      3. 成员变量必须使用private修饰
      4. 提供public修饰的getter和setter
    • 功能:封装数据

  • 概念:

    • 成员变量

    • 属性:setter和getter方法截取后的产物

      • public void setHehe(String gender){
             this.gender = gender;
        }
      • 其中成员变量是gender,属性是hehe

  • 方法:

    1. setProperty():设置JavaBean对象属性值
    2. getProperty():获取JavaBean对象属性值
    3. populate(Object obj,Map map):将map集合的键值对信息封装到对于的JavaBean对象中
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!

请我喝杯咖啡吧~

支付宝
微信