JavaWeb-Request

2020-03-09  本文已影响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. 获取请求头数据
  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()
上一篇下一篇

猜你喜欢

热点阅读