当前位置: java基础教程 > 22-servlet框架 > 阅读正文

Request请求对象

2021.5.1.   624 次   1629字

httpServletRequest,继承了ServletRequest,多了一些关于http协议的方法, 不过两者总体相差不大,ServletRequest 无法获取 http 信息.

1.获取客户端请求参数
  • String request.getParameter(String name); //获取一个参数的一个值
  • String[] request.getParameterValues(Stirng name);//某个参数的所有值
  • Enum[] request.getParameterNames();获取所有参数名称
  • Map<String,String []> request.getParameterMap();//获取所有参数名和值
2.设置请求参数的编码:request.setCharaterEncoding(“utf-8”);
3.获取一些常用的信息
  • getContentLength():返回请求正文的长度。
  • getContentType():获得请求正文的MIME类型。
  • getInputStram():返回用于读取请求正文的输入流。
  • getLocalAddr():返回服务器的IP地址。
  • getLocalName():返回服务器端的主机名。
  • getLocalPort():返回服务器端的FTP端口号。
  • getParameter(String name):获取参数
  • getProtocal():返回客户端和服务器端通信所用的协议的名称及版本号。
  • getReader():返回用户读取字符串形式的请求正文的BufferedReader对象。
  • getRemoteAddr():返回客户端的IP地址。
  • getRemoteHost():返回客户端的主机名。
  • getRemotePort():返回客户端的FTP端口号。
4.获取http协议的请求信息( 必须是 httpServeltRequest )
  • 获取请求行信息
    1. getMethod();获取请求方式
    2. getContextPath();获取项目虚拟目录
    3. getServletPath();获取servlet路径
    4. getQueryString();获取请求参数数据
    5. getRequestURI();获取uri,(除协议和域名剩下的部分)
    6. getRequestURL();获取url,(资源的绝对路径)
    7. getProtocal();获取请求协议以及版本
    8. getRemoteAddr();获取客户主机的ip地址
  • 获取请求头参数
    1. getHeader(String name);获取某个请求头的值
    2. getHeaderNames();获取所有的请求头名称
  • 获取请求体参数
    • 先获取流对象
      • getReader();字符输入流对象
      • getInputStream();获取字节输入流对象
    • 从流对象中获取参数:getQueryString();
5.请求转发
  • 步骤:
    1. 获取请求转发器对象:getRequestDispatcher(String path);
    2. 使用转发对象进行转发:forward(request,response);
  • 特点:
    1. 浏览器地址栏不发生变化
    2. 只能转发到服务器内部资源, 且应该是servlet
    3. 客户端只发送了一次请求
  • 路径写法: 只能相对路径,可以访问WEB-INF
    • 访问class时,目录在WEB-INF/classes
    • ./xx表示当前文件夹某个文件
    • xx/表示子集目录
    • /xx表示根目录下的xx
6.共享数据

先了解域对象::一个有作用范围的对象,可以在范围内共享数据

  • request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
  • 方法:
    1. setAttribute(String name,Object obj):存储数据
    2. getAttribute(String name):通过键名获取
    3. removeAttribute(String name):通过键名移除数据
7.获取servletContent:getServletContent();
8.request对象的生命周期:
  • 每次请求都会创建一个请求对象
  • 服务方法执行后就会销毁

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群