Request简介

Request是代表HTTP请求的对象

在服务器接收到客户端发送的请求之后,调用Servlet的service方法处理请求之前,服务器会创建处代表请求的request对象(用于封装请求信息),再将request对象(和response对象)传递给service方法,调用service方法来处理请求。

1.request集成关系

  ServletRequest接口  -  定义了一个Request对象应该具备哪些功能

    |---HttpServletRequest 接口  -  继承了ServletRequest接口,并添加了部分和HTTP协议相关的方法

      |--- xxxx类  request对象

2.Request的功能

2.1获取客户端发送的完整url地址

getRequestURL();



2.2获取客户机的IP地址

getRemoteAddr();



2.3获取请求方式

getMethod();



2.4获取当前Web应用的虚拟路径

getContextPath();



2.5获取请求头

getHeader();

3.获取请求参数

getParameter(String name)  根据请求参数的名称返回参数值  String
getParameterValues()  根据请求参数的名称返回对应的所有参数值组成的数组  String[]
getParameterMap()  返回所有的参数组成的map集合

注:
//如果是POST提交,可以解决中文乱码
request.setCharacterEncoding("utf-8");
也可以使用手动编解码解决乱码问题
String[] a = username.getBytes("iso-8859-1");
a = new String(a,"utf-8");

4.请求转发

  4.1.request.getRequestDispatcher("所转发到资源的路径").forward(request,response);

  转发的特点:

    一次请求一次相应

     转发前后的request对象是同一个

    转发前后的地址栏地址不会发生变换

    转发只能是同一个web应用内部的资源跳转,不可一是不同的web应用或者不同的虚拟主机

  注:请求转发作用:

    和request域对象配合使用,将数据带到目的地

  4.2.作为域对象使用

    域对象:如果一个对象具有可以被访问的范围,利用该对象上的map集合,可以再整个范围内实现数据的共享。

  4.3.域对象的三大特征

    (1)生命周期

      一次请求开始时创建request对象

      一次请求结束时销毁request对象

    (2)作用范围

      整个请求连

    (3)主要功能

      和转发配合使用,在整个范围内实现资源的共享

原文地址:https://www.cnblogs.com/gxlaqj/p/11397107.html