HttpServletRequest

本文详细介绍了HttpServletRequest接口在Servlet中的作用,包括其在Tomcat中的位置、主要功能,如读取请求行、请求头和请求体信息,并探讨了请求对象与响应对象的生命周期。在处理HTTP请求时,HttpServletRequest如何读取URL、method、GET和POST参数等关键信息。

一、概述

  • HttpServletRequest接口来自于Servlet规范,存在于tomcat的servlet-api.jar中
  • HttpServletRequest接口实现类由HTTP服务器负责提供,也封装在tomcat的servlet-api.jar中
  • HttpServletRequest接口负责在doGet/doPost方法运行时读取HTTP请求协议包中的信息
  • 开发人员习惯将HttpServletRequest接口修饰的对象称为请求对象

二、主要功能

  1. 可以读取HTTP请求协议包中请求行信息
  2. 可以读取保存在HTTP请求协议包中请求头(GET)或者请求体(POST)中参数信息
  3. 可以代替浏览器向HTTP服务器中申请资源文件调用

三、功能分析

1. 读取请求行信息

1.1 读取URL信息

request.getRequestURL().toString();

1.2 读取method信息

request.getMethod;

2. 读取请求头中所有请求参数名(GET)

Enumeration paramNames = request.getParameterNames(); // 将所有请求参数名称保存在一个枚举对象进行返回
while(paramNames.hasMoreElements()){
    String paramName = (String)paramNames.nextElement();
    // 通过请求对象读取指定的请求参数值
    String value = request.getParameter(paramName);
    System.out.println("请求参数名"+paramName+"请求参数值"+value);
}

3. 读取请求体中所有参数名(POST)

  • 浏览器以GET方式发送请求,请求参数保存在请求头中,在HTTP请求协议包到达HTTP服务器之后,第一件事就是进行解码,请求头二进制内容由tomcat负责解码,默认使用utf-8字符集
  • 浏览器以POST方式发送请求,请求参数保存在请求体中,在HTTP请求协议包到达HTTP服务器之后,第一件事就是进行解码,请求体二进制内容由当前请求对象(request)负责解码,request默认使用ISO-8859-1字符集(东欧语系),此时如果请求体参数内容是中文,将无法解码只能得到乱码
request.setCharacterEncoding("utf-8");

四、请求对象与响应对象生命周期

  1. 在HTTP服务器接收到浏览器发送的HTTP请求协议包之后,自动为当前的HTTP请求协议包生成一个请求对象和一个响应对象(形参)
  2. 在HTTP服务器调用doGet/doPost方法时,负责将请求对象和响应对象作为实参传递到对应doGet/doPost方法,确保doGet/doPost正确执行
  3. 在HTTP服务器准备发送回HTTP响应协议包之前,负责将本次请求关联的请求对象和响应对象销毁
    请求对象和响应对象生命周期贯穿一次请求的处理过程中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逐渐江江江江化

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值