欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HttpServletRequest

程序员文章站 2024-02-04 13:49:04
...

HttpServletRequest
Web客户端发送给Web服务器的HTTP请求信息包含三部分:请求行、请求消息头、消息正文(实体内容)。消息正文只在以POST、PUT、DELETE等方式发出请求时才出现。Servlet的API定义了一个ServletRequest接口类来获取客户端请求信息以及客户机和服务器的网络环境信息。HttpServletRequest是专门用于HTTP协议的ServletRequest接口,用于封装HTTP请求信息,增加获取HTTP协议专有的头信息方法,支持Cookie和Session跟踪以及获取HTTP请求消息参数的功能。

4.1    获取请求行信息
4.1.1.1    GetMethod
返回HTTP请求信息终端请求方式:GET、POST、HEAD、PUT、DELETE等
4.1.1.2    getRequestURI
返回请求行中的资源名部分。
例:

http://localhost:8080/JSPProject/servlet/ServletRequestServlet?params1=&params2=2
 

返回的是:/servlet/ServletRequestServlet
4.1.1.3    getQueryString
返回请求行中的参数部分。
例:

http://localhost:8080/JSPProject/servlet/ServletRequestServlet?params1=&params2=2
 

返回的是: params1=&params2=2



4.1.1.4    getProtocol
返回请求行中的协议名称和版本。
4.1.1.5    getContextPath
返回请求URL所属的WEB应用程序的路径。
4.1.1.6    getPathInfo
返回请求URL中额外路径信息,额外路径信息室请求URL中的位于Servlet的路径之后和查询参数之前的内容。在MVC框架模式中,客户端所有请求都指向一个*控制器的Servlet,其他各个JSP页面则作为URL中的额外路径部分,由这个Servlet根据额外路径信息去调用其他各个JSP页面。
4.1.1.7    getPathTranslated
返回URL中的额外路径信息所对应的资源的物理路径。
4.1.1.8    getServletPath
返回Servlet的名称或Servlet所映射的路径

4.2    获取请求头信息
4.2.1.1    getHeader
返回一个指定名称的头字段值。
4.2.1.2    getHeaders
返回一个Enumeration集合,该集合对象由请求消息中出现的所有头字段值组成。
4.2.1.3    getHeaderName
返回一个包含请求信息中所有头字段名的Enumeration对象。
4.2.1.4    getIntHeader
获取指定名称的头字段并将其转换为Int型
4.2.1.5    getDateHeader
用于获取一个指定名称的头字段的值并将其转换为日期型
4.2.1.6    getContentType
返回Content-Type头字段值
4.2.1.7    getContentLength
返回Content-Length头字段值
4.2.1.8    getCharacterEncoding
返回请求消息的实体部分的字符集编码
4.3    获取请求参数
4.3.1.1    getParameter
返回某个指定名称的参数的值
4.3.1.2    getParameterValues
返回多个相同名称的参数
4.3.1.3    getParameterNames
返回一个包含请求消息中所有参数名的Enumeration对象。
4.3.1.4    getParameterMap
将请求消息中的所有参数名和值装入Map中


4.4    获取请求消息实体内容
4.4.1.1    getInputStream/getReader
getInputStream返回一个代表实体内容为ServletInputStreamd输入流对象。如果实体内容包含二进制数据,使用该方法。
getReader返回一个代表肢体内容的BufferedReader对象。在调用getReader方法之前可以调用setCharacterEncoding方法设置字符集编码。



4.5    利用请求域属性传递信息
4.5.1.1    setAttribute
用于将一个对象与一个名称关联后存储进ServletRequest对象中。
4.5.1.2    getAttribute
用于从ServletRequest中返回指定名称的属性对象。
4.5.1.3    removeAttribute
删除指定名称的属性。
4.5.1.4    getAttributeNames
获取属性名称返回一个Enumeration对象

注:Servlet对象中的属性只对当前请求有效,对于其他请求无效,也就说请求域属性只能用于在通过RequestDispatcher的forward和include方法贯穿起来的多个Servlet或JSP页面之间共享数据。
通过URL地址后面附加参数的方式可以在两个Servlet之间传递信息,但是只能传递简单的字符文本信息,不能像请求域那样传递复杂对象。