servlet接受服务器请求信息
客户端的HTTP请求通过HttpServletRequest对象代表
主要用于获取由客服端发送过来的请求头,参数,文件,数据等
Servlet规范中对此对象进行增强,使其还可以与web应用程序互交
servlet存在的真正任务接受处理请求
GET/POST提交方法
浏览器都会向web服务器发送HTTP请求
用户在网页上点击一个超链接
用户提交在网页上填写号的表单
用户在浏览器地址栏中输入URL地址并回车
特征
GET方法
提交数据类型
文本
提交数据长度
不超过255个字符
提交数据可见性
作为URL地址的一部分显示在浏览器地址栏
提交数据缓存
缓存在浏览器URL历史状态中
POST方法
提交数据类型
文本,二进制文本
提交数据长度
没有限制
提交数据可见性
作为请求的消息体,不可见
提交数据缓存
不会被浏览器缓存
HTTP请求方法与HttpServlet方法对应关系
HTTP请求方法类型
有7种,其中两种常用
GET
POST
HttpServlet处理方法
doGet
doPOST
获取HTTP协议请求行
访问请求行信息的方法
getMethod()
获取GET、POST等
getRequestURI()
获取请求的URI资源
getRequestURL()
获取请求的URL,包含协议名,服务器名或IP、端口好和请求资源但不包括查询字符串参数
getQueryString()
获取请求URL后面的查询字符串
getProtocol()
获取HTTP的协议名和版本号
getContextPath()
获取请求URI资源的上下文路径,总是以“/”开头
getServletPath()
获取Servlet的映射路径
获取HTTP协议请求头
getHeader(java.lang.String name)
返回指定的请求头的值
getHeaders(java.lang.String name)
大多数情况下,每个请求头的名称只在请求中出现一次。但是偶然情况下也可以出现多次
getIntHeader(java.lang.String name)
获取特定请求头的值,并将其转化为int类型。如果请求头不存在该方法返回1,如果不能转化为整性,抛出NumberFormatException异常
getHeaderNamcs()
不用查询特定的HTTP请求头,该方法获得一个Enumeration包含特定请求中接受到所有请求头的名称
getDateHeader(java.lang.String name)
获取特定请求头的值,转化为Date类型,HTTP请求头对于判断所有请求信息的种类来说非常有用
获取请求消息体
HttpServletRequest对象可以访问HTTP请求行、获取浏览器设置的请求头
HttpServletRequest对象还可以获取HTTP请求的消息体
消息体可以是普通文本也可以是二进制数据获取表单数据
getParameter(java.lang.String parameterName)
获取表单参数的值,参数名区分大小写,与HTML表单中出现的参数名一致
getParameterValues(java.lang.String parameterName)
获取同一个参数名的多个参数值,返回字符串数组对象
getParameterNames()
以Enumeration(枚举)的方式返回请求中所有的表单参数名列表。和ShowHeaders Servlet一样,可以用Servlet来读取和显示所有的请求参数
请求转发和请求范围
请求转发跟重定向不一样,请求转发只会请求一次,返回一次响应
传递给很多Servlet以及Web应用程序中其他资源,整个过程完全是在服务器端完成的
请求转发
getRequestDispatcher(java.lang.String path)
getRequestDispatcher()方法返回给定路径的RequestDispatcher对象
getNamedDispatcher(java.lang.String name)
getNamedDispatcher()方法返回某个名称的Servlet的RequestDispatcher对象
forward(javax.servlet.ServletRequest,javax.servlet.ServletResponse)
forward()方法派发请求和响应对象到RequestDispatcher 对象所确定的新资源
请求范围
两个或多个Servlet请求之间传输对象的方法,在这之外的对象就会被回收