http://www.51gjie.com/javaweb/957.html

HttpServletRequest包详解

HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息,包括请求的地址,请求的参数,提交的数据,上传的文件客户端的ip甚至客户端操作系统都包含在其内。java中HttpServletRequest专门处理GET/POST请求。

HTTP请求协议

a.请求地址(URL)

b.请求头(Request headers)

c.实体数据(Entity body)

//HTTP 1.1协议信息 POST /examples/default.jsp HTTP/1.1 Accept: text/plain; text/html Accept-Language: en-gb Connection: Keep-Alive Host: localhost User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98) Content-Length: 33 Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate lastName=Franks&firstName=Michael

HttpServletRequest封装了所有的http头部信息,java中就可以通过这个类很容易获取。

常用方法

1. 获得客户端信息

getMethod //返回HTTP请求消息中的请求方式。 getRequestURI //返回请求行中的资源名部分。 getQueryString //返回请求行中的参数部分。 getProtocol //返回请求行中的协议名和版本。 getContextPath //返回请求资源所属于的WEB应用程序的路径。 getPathInfo //返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。 getPathTranslated //返回URL中的额外路径信息所对应的资源的真实路径。 getServletPath //返回Servlet的名称或Servlet所映射的路径。获取网络连接信息 getRemoteAddr //返回发出请求的客户机的IP地址,其格式为“192.168.0.3”这种形式的字符文本。 (\*) getRemoteHost //返回发出请求的客户机的完整主机名,即“pc1.it315.org”这种格式。 getRemotePort //返回发出请求的客户机所使用的网络接口的端口号。 getLocalAddr //返回WEB服务器上接收当前请求的网络接口的IP地址。 getLocalName //返回WEB服务器上接收当前请求的网络接口的IP地址所对应的主机名。 getLocalPort //返回WEB服务器上接收当前请求的网络接口的端口号。 getServerName //返回当前请求所指向的主机名。 getServerPort //返回当前请求所连接的服务器端口号。 getScheme //返回请求的协议名,例如http、https或ftp。 getRequestURL //返回客户端发出请求时的完整URL。

2. 获得客户端机器请求头部信息

getHeader(string name) //返回String getHeaders(String name) //返回Enumeration getHeaderNames方法 getIntHeader方法 getDateHeader方法 getContentType方法 getContentLength方法 getCharacterEncoding方法

3. 常用的方法

String getMethod() 返回这个请求使用的HTTP方法(例如:GET、POST、PUT) String getQueryString() 返回这个请求URL所包含的查询字符串。一个查询字串符在一个URL中由一个“?”代表。 String getRequestURI() 返回请求的路径 HttpSession getSession() 返回一个当前有效的session String getParameter(String key) 是从Get或者Post提交的数据中获取数据 setAttribute(String name,Object o) 将数据作为request对象的一个属性存放到request对象中,例如:request.setAttribute("data", data); getAttribute(String name) 返回获取request对象的name属性的属性值或是session内存在的对象尤服务器端设置,例如:request.getAttribute("data") removeAttribute(String name) 移除request对象的name属性,例如:request.removeAttribute("data") getAttributeNames 获取request对象的所有属性名,返回的是一个,例如:EnumerationattrNames = request.getAttributeNames(); String getHeader("referer") 则是获取上一次请求的url

4. 获得客户请求参数(客户端提交的数据)

getParameter(String)(常用) getParameterValues(String name)(常用) getParameterNames()(不常用) getParameterMap()(编写框架时常用)

GET/POST请求