Request
代表请求的对象
ServletRequest
|-HttpServletRequest
1.获取客户机信息
StringBuffer getRequestURL()
获取客户端访问的完整URL
String getRequestURI()
获取客户端访问的资源路径
String getQueryString()
获取请求地址中的参数部分作为字符串返回
String getRemoteAddr()
获取客户机ip地址信息
String getMethod()
获取请求方式
String getContextPath()
获取当前访问的应用名称
**路径的使用 - 相对路径 绝对路径
2.获取请求头
String getHeader(String name)
获取指定请求头的值
Enumeration getHeaders(String name)
获取指定请求头的值们
Enumeration getHeaderNames()
获取所有请求头的名字们
int getIntHeader(String name)
以int类型获取指定请求头的值
long getDateHeader(String name)
以时间毫秒值获取请求头的值
3.获取请求参数
String getParameter(String name)
获取指定名称的请求参数的值
String[] getParameterValues(String name)
获取指定名称请求参数的值的集合
请求中可能包含多个同名请求参数,可以通过这个方法来获取
Enumeration getParameterNames()
获取所有请求参数名们
Map getParameterMap()
获取所有请求参数组成的Map<String,String[]>,其中键为请求参数名,值为请求参数值的数组
**GET请求乱码原理
**POST请求乱码原理 request.setCharacterEncoding(“xxx”)
4.实现请求转发
RequestDispatcher dispatcher=request.getRequestDispatcher(“/MyServlet05”);
dispatcher.forward(request,response);
可以多重转发 不可以循环转发
只能由最后一个资源对外输出信息,其他资源打给浏览器的信息会被抛弃
转发的特点:
服务器内部的资源跳转
一次请求一次响应
可以用request域传递数据
地址栏不会发生变化
5.作为域对象使用
转发包含时,使用的是同一个request,利用它身上的域(Map)可以传递数据
setAttribute()
getAttribute()
removeAtrribute()
getAttributeNames()
生命周期
请求开始创建
请求结束销毁
作用范围
一个请求范围内
主要功能
在一个请求范围内的转发和包含时传递数据