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