1. 请求对象
获取资源,在BS 架构中就是客户端浏览器向服务器端发出询问
2. 获取路径
- getContextPath() 获取虚拟目录名称
- getServletPath() 获取Servlet映射路径
- getRemoteAddr() 获取访问者ip
- getQueryString() 获取请求的消息数据
- getRequestURI() 获取统一资源标识符
- getRequestURL() 获取统一资源定位符
3. 获取请求头
- getHeader(string name) 根据请求头名称获取值
- getHeaders(string name) 根据请求头名称获取多个值 返回枚举
- getHeaderNames() 获取所有请求头名称 返回枚举
4. 获取请求参数信息
- getParameter(string name) 根据名称获取数据
- getParameterValues(String name) 根据名称获取所有数据
- getParameterNames() 获取所有名称
- getParameterMap() 获取所有参数的键值对
5. 获取请求参数并封装为对象
- 手动封装对象 new一个
反射封装对象
- pd = new PropertyDescriptor(name,类对象.class) 根据name获取该对象的成员变量方法
- pd.getWriteMethod().invoke(类对象,传递的参数)
工具类封装对象 Beanutils
- Beanutils.popilate(类对象,传递的参数);
6. 通过流对象获取请求信息
- 只支持post请求
- getReader() 获取字符输入流
- getInputStream() 获取字节输入流
7. 中文乱码问题
GET 方式 在Tomcat8已经解决
POST 通过 setChararerEnocding(“UTF-8”)解决
request.setCharacterEncoding("UTF-8");
8. 请求域
又称request域 可以在一次请求范围内进行共享数据,一般用于请求转发的多个资源中共享数据
- setAttribute(String name , object vlaue) 向请求域对象中存储数据
- getAttribute(string name) 根据名称获取请求域的数据
- removeAttribute(String name) 根据名称删除请求域的数据
8.1. 请求转发
客服端的请求到达后,发现需要其他Servlet来实现功能,则需要转发数据
getRequestDispatcher(String name 虚拟路径) 获取请求调度对象
- forward(HttpServletRequest request, HttpServletResponse response) 实现转发
8.2. 请求包含
可以合并其他Servlet中的功能一起响应给客户端
getRequestDispatcher(String name 虚拟路径) 获取请求调度对象
- include(HttpServletRequest request, HttpServletResponse response) 实现包含