转自:
JSP request对象功能详解说明
下文笔者讲述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.*" %>
<htm>
<head>
</head>
<body>
客户使用的协议是:
<%
String strProtocol = request.getProtocol();
out.print(strProtocol);
%>
<br/>
获取客户提交信息的页面:
<%
String strPath = request.getServletPath();
out.print(strPath);
%>
<br/>
接受客户提交信息的长度
<%
int intLength = request.getContentLength();
out.print(intLength);
%>
<br/>
客户提交信息的方式:
<%
String strMethod = request.getMethod();
out.print(strMethod);
%>
<br/>
获取HTTP头文件中User-agent的值
<%
String strUserAgent = request.getHeader("User-Agent");
out.print(strUserAgent);
%>
<br/>
获取HTTP头文件中的accept值
<%
String strAccept = request.getHeader("accept");
out.print(strAccept);
%>
<br/>
获取HTTP头的Host的值
<%
String strHost = request.getHeader("Host");
out.print(strHost);
%>
<br/>
获取HTTP头文件中accept-encoding的值
<%
String strAcceptEncoding = request.getHeader("accept-encoding");
out.print(strAcceptEncoding);
%>
<br/>
获取客户的IP地址
<%
String strIP = request.getRemoteAddr();
out.print(strIP);
%>
<br/>
获取客户机的名称
<%
String strClientName = request.getRemoteHost();
out.print(strClientName);
%>
<br/>
获得服务器的名称
<%
String strServerName = request.getServerName();
out.print(strServerName);
%>
<br/>
获得服务器端口号
<%
int strServerPort = request.getServerPort();
out.print(strServerPort);
%>
<br/>
获取客户端提交的所有参数名字:<br/>
<%
Enumeration<String> enumer = request.getParameterNames();
while(enumer.hasMoreElements())
{
String s = (String) enumer.nextElement();
out.print(s);
out.print("<br/>");
}
%>
<br/>
获取头名字的一个枚举:<br/>
<%
Enumeration<String> enumHead = request.getHeaderNames();
while(enumHead.hasMoreElements())
{
String s = (String) enumHead.nextElement();
out.print(s);
out.print("<br/>");
}
%>
<br/>
获取头文件中指定头名字的全部值的一个枚举<br/>
<%
Enumeration<String> enumCookies = request.getHeaders("cookie");
while(enumCookies.hasMoreElements())
{
String s = (String)enumCookies.nextElement();
out.print(s);
out.print("<br/>");
}
%>
<br/>
</body>
</html>