说明:
本篇文章主要记录的是对HttpServletRequest接口的介绍,以及接口经常使用的方法的概述。
HttpServletRequest接口详细概述目录
1、HttpServletRequest接口概述
Ⅰ HttpServletRequest是一个接口,全限定名称:jakarta.servlet.http.HttpServletRequest
Ⅱ HttpServletRequest接口是Servlet规范中的一员。
Ⅲ HttpServletRequest接口的父接口:ServletRequest
Ⅳ Tomcat服务器(WEB服务器、WEB容器)实现了HttpServletRequest接口,还说明了Tomcat服务器实现了Servlet规范。
2、HttpServletRequest对象中都有什么信息?都包装了什么信息?
Ⅰ HttpServletRequest对象是Tomcat服务器负责创建的。封装了HTTP的请求协议。
Ⅱ 实际上是用户发送请求的时候,遵循了HTTP协议,发送的是HTTP的请求协议,Tomcat服务器将HTTP协议中的信息以及数据全部解析出来,然后Tomcat服务器把这些信息封装到HttpServletRequest对象当中,传给了我们javaweb程序员。
Ⅲ javaweb程序员面向HttpServletRequest接口编程,调用方法就可以获取到请求的信息了。
3、request和response对象的生命周期?
Ⅰ request对象和response对象,一个是请求对象,一个是响应对象。这两个对象只在当前请求中有效。
Ⅱ 一次请求对应一个request。
4、HttpServletRequest接口中有哪些常用的方法?
4.1 怎么获取前端浏览器用户提交的数据?
Map<String,String[]> getParameterMap() 这个是获取Map
Enumeration<String> getParameterNames() 这个是获取Map集合中所有的key
String[] getParameterValues(String name) 根据key获取Map集合的value
String getParameter(String name) 获取value这个一维数组当中的第一个元素。这个方法最常用。
另外:前端提交的数据格式:username=abc&userpwd=111&aihao=s&aihao=d&aihao=tt
,因此在进行数据存储会使用如下格式:
Map<String, String[]>
key存储String
value存储String[]
key value
-------------------------------
username {"abc"}
userpwd {"111"}
aihao {"s","d","tt"}
注意:前端表单提交数据的时候,都是以字符串的形式接收
方法测试:
Map<String,String[]> parameterMap = request.getParameterMap();
Enumeration<String> names = request.getParameterNames();
String[] values = request.getParameterValues("name");
String value = request.getParameter("name");
4.2、请求域
简介:request对象实际上又称为“请求域”对象。
request请求域当中有三个操作域的方法:
Ⅰ “请求域”对象要比“应用域”对象范围小很多。生命周期短很多。请求域只在一次请求内有效。
Ⅱ 一个请求对象request对应一个请求域对象。一次请求结束之后,这个请求域就销毁了。
请求域对象的三个方法:
void setAttribute(String name, Object obj); // 向域当中绑定数据。
Object getAttribute(String name); // 从域当中根据name获取数据。
void removeAttribute(String name); // 将域当中绑定的数据移除
请求域和应用域的选用原则:尽量使用小的域对象,因为小的域对象占用的资源较少。
4.3、剩余常用方法
// 获取应用的根路径
String contextPath = request.getContextPath();
// 获取请求方式
String method = request.getMethod();
// 获取请求的URI
String uri = request.getRequestURI(); // /aaa/testRequest
// 获取servlet path
String servletPath = request.getServletPath(); // /testRequest