转自:
下文笔者讲述request对象的功能简介说明,如下所示:
request的功能:
request是HttpServletRequest类的实例
request对象中封装了客户端请求的数据信息,通过获取request对象中的信息,我们可获取客户端的请求信息
request对象中的方法
| string getProtocol() | 返回请求用的协议类型及版本号 request.getProtocol() 输出:HTTP/1.1 |
| getServletConfig().getServletContext().getServerInfo() | 服务器信息 输出:JavaServer Web Dev Kit/1.0 EA (JSP 1.0; Servlet 2.1; Java 1.2; Windows NT 5.0 x86; java.vendor=Sun Microsystems Inc.) |
| String getRemoteAddr() | 返回发送此请求的客户端IP地址 request.getRemoteAddr() 输出:192.168.8.8 |
| String getRemoteHost() | 返回发送此请求的客户端主机名 |
| String getCharacterEncoding() | 返回字符编码方式 request.getCharacterEncoding() 输出:GB2312 |
| int getContentLength() | 返回请求体的长度(以字节数) |
| String getContentType() | 得到请求体的MIME类型 8. string getAuthType() 获取Authorization头 request.getContentType() 输出:basic或者digest |
| string getMethod() | 获取请求类型 输出:通常是GET或者POST。但偶尔也会出现HEAD,PUT, Delete,OPTIONS,或者 TRACE. |
| string getPathInfo() | 获取URL中的附加路径信息 输出:URL中Servlet路径之后、查询字符串之前的那部分 |
| string getPathTranslated() | 映射到服务器实际路径之后的路径信息 |
| string getQueryString() | 这是字符串形式的附加到URL后面的查询字符串,数据仍旧是URL编码的。 |
| string getRemoteUser() | 如果提供了Authorization头,则代表其用户部分。它代表发出请求的用户的名字。 |
| string getRequestedSessionId() | 输出SessionId |
| string getRequestURI() | 请求URL |
| string getServletPath() | URL中调用Servlet的那一部分,不包含附加路径信息和查询字符串 |
| string getHeader() | 获取请求头部信息 getHeader("Accept") //访问Accept的HTTP头。 getHeader("Host") //输出:192.168.8.8:8080 |
| String getServerName() | 返回接受请求的服务器主机名 request.getServerName() 输出:192.168.8.8 |
| int getServerPort() | 返回服务器接受此请求所用的端口号 request.getServerPort() 输出:8080 |
| ServletInputStream getInputStream() | 得到请求体中一行的二进制流 |
| String getScheme() | 返回请求用的计划名,如:http.https及ftp等 |
| BufferedReader getReader() | 返回解码过了的请求体 |
| void setAttribute(String key,Object obj) | 设置属性的属性值 |
| String getRealPath(String path) | 返回一虚拟路径的真实路径 |
| String getParameter(String name) | 返回name指定参数的参数值 |
| Enumeration getParameterNames() | 返回可用参数名的枚举 |
| String[] getParameterValues(String name) | 返回包含参数name的所有值的数组 |
例
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %> <%@ page import="java.util.*" %>客户使用的协议是: <% String strProtocol = request.getProtocol(); out.print(strProtocol); %>
获取客户提交信息的页面: <% String strPath = request.getServletPath(); out.print(strPath); %>
接受客户提交信息的长度 <% int intLength = request.getContentLength(); out.print(intLength); %>
客户提交信息的方式: <% String strMethod = request.getMethod(); out.print(strMethod); %>
获取HTTP头文件中User-agent的值 <% String strUserAgent = request.getHeader("User-Agent"); out.print(strUserAgent); %>
获取HTTP头文件中的accept值 <% String strAccept = request.getHeader("accept"); out.print(strAccept); %>
获取HTTP头的Host的值 <% String strHost = request.getHeader("Host"); out.print(strHost); %>
获取HTTP头文件中accept-encoding的值 <% String strAcceptEncoding = request.getHeader("accept-encoding"); out.print(strAcceptEncoding); %>
获取客户的IP地址 <% String strIP = request.getRemoteAddr(); out.print(strIP); %>
获取客户机的名称 <% String strClientName = request.getRemoteHost(); out.print(strClientName); %>
获得服务器的名称 <% String strServerName = request.getServerName(); out.print(strServerName); %>
获得服务器端口号 <% int strServerPort = request.getServerPort(); out.print(strServerPort); %>
获取客户端提交的所有参数名字:
<% Enumerationenumer = request.getParameterNames(); while(enumer.hasMoreElements()) { String s = (String) enumer.nextElement(); out.print(s); out.print("
"); } %>
获取头名字的一个枚举:
<% EnumerationenumHead = request.getHeaderNames(); while(enumHead.hasMoreElements()) { String s = (String) enumHead.nextElement(); out.print(s); out.print("
"); } %>
获取头文件中指定头名字的全部值的一个枚举
<% EnumerationenumCookies = request.getHeaders("cookie"); while(enumCookies.hasMoreElements()) { String s = (String)enumCookies.nextElement(); out.print(s); out.print("
"); } %>