HttpServletRequest 常用方法讲解

来源:互联网 发布:linux ftp命令 编辑:程序博客网 时间:2024/06/07 16:13

见: http://blog.csdn.net/qq877507054/article/details/51395839



Web服务器收到一个http请求,会针对每个请求创建一个HttpServletRequestHttpServletResponse对象,

从客户端取数据找HttpServletRequest,向客户端发送数据找HttpServletResponse。


HTTP 协议是基于请求-响应的协议,客户端请求一个文件,服务器对该请求进行响应。

HTTP 使用 TCP 协议,默认使用 80 端口。最初的 HTTP 协议版本是 HTTP/0.9,后被 HTTP/1.0 替代。目前使用的版本是 HTTP/1.1

在 HTTP 协议中,总是由主动建立连接、发送 HTTP 请求的客户端来初始化一个事务。

服务器不负责连接客户端,或创建一个到客户端的回调连接(callback connection)。



HttpServletRequest 

  公共接口类HttpServletRequest继承自ServletRequest.客户端浏览器发出的请求被封装成为一个HttpServletRequest对象。

所有的信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的IP,甚至客户端操作系统都包含在其内。


一个 HTTP 请求包含以下三部分:

a.请求地址(URL)

b.请求头(Request headers)

c.实体数据(Entity body)


  每个 HTTP 请求都会有一个请求方法,HTTP1.1 中支持的方法包括,GETPOSTHEADOPTIONSPUTDELETE 和 TRACE

互联网应用中最常用的是 GET 和 POST

  URI 指明了请求资源的地址,通常是从网站根目录开始计算的一个相对路径,因此它总是以斜线 “/”开头的。

URL 实际上是 URI 的一种类型,请求头(header)中包含了一些关于客户端环境和请求实体(entity)的有用的信息。

例如,客户端浏览器所使用的语言,请求实体信息的长度等。每个请求头使用 CRLF(回车换行符,“\r\n”)分隔。

注意请求头的格式:请求头名+英文空格+请求头值。

 

常用方法

1.获得客户机信息

getRequestURL方法返回客户端发出请求时的完整URL

getRequestURI方法返回请求行中的资源名部分。

getQueryString 方法返回请求行中的参数部分。

getRemoteAddr方法返回发出请求的客户机的IP地址

getRemoteHost方法返回发出请求的客户机的完整主机名

getRemotePort方法返回客户机所使用的网络端口号

getLocalAddr方法返回WEB服务器的IP地址。

getLocalName方法返回WEB服务器的主机名

getMethod得到客户机请求方式

getServerPath()获取请求的文件的路径


 2.获得客户机请求头

getHeader(string name)方法 
getHeaders(String name)方法 
getHeaderNames方法 


 3. 获得客户机请求参数(客户端提交的数据)
getParameter(name)方法 获取请求中的参数,该参数是由name指定的
getParameterValuesString name)方法 获取指定名称参数的所有值数组。

它适用于一个参数名对应多个值的情况。如页面表单中的复选框,多选列表提交的值。


getParameterNames方法 返回一个包含请求消息中的所有参数名的Enumeration对象。

通过遍历这个Enumeration对象,就可以获取请求消息中所有的参数名。


getCharacterEncoding() 返回请求的字符编码方式

getAttributeNames()返回当前请求的所有属性的名字集合赋值:setAttribute()

getAttribute(String name) 返回name指定的属性值

getsession()返回和客户端相关的session,如果没有给客户端分配session,则返回null

getParameterMap():返回一个保存了请求消息中的所有参数名和值的Map对象。

Map对象的key是字符串类型的参数名,value是这个参数所对应的Object类型的值数组。


RequestDispatcher.forward 方法的请求转发过程结束后,浏览器地址栏保持初始的URL地址不变。

方法在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发生了转发行为。


request.setCharacterEncoding("utf-8");

getReader() 获取请求体的数据流。

getInputStream() 获取请求的输入流中的数据。


0 0
原创粉丝点击