目录
1 HttpServletRequest作用
客户端发送给服务器端的数据。
2.通过request获得请求⾏
获得客户端的请求⽅式:String getMethod()
获得请求的资源:
String getRequestURI() -- 获取请求UR
I StringBuffer getRequestURL() String getContextPath() -- 获取虚拟⽬录
String getServletPath() -- 获取Servlet路径
String getQueryString() -- 获取get⽅式请求参数 username=zhangsan&password=123
String getRemoteAddr() -- 获取客户机的IP地址
3.通过request获得请求头
ong getDateHeader(String name)
String getHeader(String name)
int getIntHeader(String name)
Enumeration getHeaderNames() -- 获取所有的请求头名称
常⻅的请求头:
User-Agent:浏览器告诉服务器,我访问你使⽤的浏览器版本信息
作⽤:可以在服务器端获取该头的信息,解决浏览器的兼容性问题
4.通过request获得请求体
请求体:只有POST请求⽅式,才有请求体,在请求体中封装了POST请求的请求参数。
步骤:
1. 获取流对象 BufferedReader getReader():获取字符输⼊流,只能操作字符数据 ServletInputStream getInputStream():获取字节输⼊流,可以操作所有类型数据
2. 再从流对象中拿数据
5.请求转发
请求转发:⼀种在服务器内部的资源跳转⽅式
1. 步骤:
1. 通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path) 2. 使⽤RequestDispatcher对象来进⾏转发:forward(ServletRequest request, ServletResponse response)
2. 特点:
1. 浏览器地址栏路径不发⽣变化
2. 只能转发到当前服务器内部资源中
3. 转发是⼀次请求
6.共享数据
域对象:
⼀个有作⽤范围的对象,可以在范围内共享数据 request域:
代表⼀次请求的范围,⼀般⽤于请求转发的多个资源中共享数据
⽅法:
1. void setAttribute(String name,Object obj):存储数据
2. Object getAttitude(String name):通过键获取值
3. void removeAttribute(String name):通过键移除键值对
问题:ServletContext域与Request域的⽣命周期⽐较?
ServletContext
创建:服务器启动
销毁:服务器关闭
域的作⽤范围:整个web应⽤
request
创建:访问时创建request
销毁:响应结束request销毁
域的作⽤范围:⼀次请求