該對象封裝了用戶提交的信息,通過調(diào)用該對象相應(yīng)的方法可獲取封裝的信息。
Request常用方法如下:
getParameter(String strTextName):獲取表單提交的信息,例如:String strName=request.getParameter("name");
getProtocol():獲取客戶使用的協(xié)議,例如String strProtocol=request.getProtocol();
getServletPath():獲取客戶提交信息的頁面
getMethod():獲取客戶提交信息的方式
getHeader():獲取HTTP頭文件中的accept,accept-encoding和Host的值,例如:String strHeade=request.getHeader("accept");
getRermoteAddr():獲取客戶的IP地址
getRemoteHost():獲取客戶機(jī)的名稱
getServerName():獲取服務(wù)器的名稱
getServerPort():獲取服務(wù)器的端口號
getParameterNames():獲取客戶端提交的所有參數(shù)的名字
例如:
Enumeration enum=request.getParameterNames();
while(enum.hasMoreElements())
{
String s=(String)enum.nextElement();
out.println(s);
}
當(dāng)Request對象獲取客戶提交的漢字時(shí)會出現(xiàn)亂碼問題,將獲取的字符串用ISO-8859-1進(jìn)行編碼,并將編碼存發(fā)到一個(gè)字節(jié)數(shù)組中,然后再將這個(gè)數(shù)組轉(zhuǎn)化為字符串對象即可。
例如:
String textContent=request.getParameter("boy");
byte b[]=textContent.getBytes("ISO-8859-1");
textContent=new String(b);
實(shí)例1:
源代碼:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<title>TestJsp</title>
</head>
<body>
<%
String username=request.getParameter("username");
String password=new String(request.getParameter("password").getBytes("ISO-8859-1"));
String date=request.getParameter("date");
%>
Username:<%=username %><br/>
Password:<%=password %><br/>
Date:<%=date %>
</body>
</html>
地址欄輸入:http://localhost:8080/JspTest/MyJsp2.jsp?username=徐&&password=靜&&date=2008
查看源文件:
<html>
<head>
<title>TestJsp</title>
</head>
<body>
Username:Ðì<br/>
Password:靜<br/>
Date:2008
</body>
</html>
運(yùn)行結(jié)果:
Username:Ðì
Password:靜
Date:2008
實(shí)例2:
源代碼:
MyJsp.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%! String password="Ðì¾²"; %>
<%! Date date=new Date(); %>
<html>
<head>
<title>TestJsp</title>
</head>
<body>
<jsp:forward page="MyJsp2.jsp">
<jsp:param name="username" value="<%=java.net.URLEncoder.encode("Ðì¾²")%>"/>
<jsp:param name="password" value="<%=java.net.URLEncoder.encode(password)%>"/>
<jsp:param name="date" value="<%=date.toLocaleString() %>"/>
</jsp:forward>
</body>
</html>
MyJsp2.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<jsp:directive.page import="java.net.URLDecoder"/>
<html>
<head>
<title>TestJsp</title>
</head>
<body>
<%
String username=request.getParameter("username");
String password=java.net.URLDecoder.decode(request.getParameter("password"));
String date=request.getParameter("date");
%>
Username:<%=username %><br/>
Password:<%=password %><br/>
Date:<%=date %>
</body>
</html>
查看源文件:
<html>
<head>
<title>TestJsp</title>
</head>
<body>
Username:%D0%EC%BE%B2<br/>
Password:徐靜<br/>
Date:2008-5-27 13:14:09
</body>
</html>
運(yùn)行結(jié)果:
Username:%D0%EC%BE%B2
Password:徐靜
Date:2008-5-27 13:14:09
在實(shí)例2中如果在地址欄輸入:http://localhost:8080/JspTest/MyJsp2.jsp?username=徐&&password=靜&&date=2008
查看源文件:
<html>
<head>
<title>TestJsp</title>
</head>
<body>
Username:Ðì<br/>
Password:¾²<br/>
Date:2008
</body>
</html>
運(yùn)行結(jié)果:
Username:Ðì
Password:¾²
Date:2008
實(shí)例3:
源代碼:
MyJsp.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%! String password="Ðì¾²"; %>
<%! Date date=new Date(); %>
<%request.setCharacterEncoding ("UTF-8");%>
<html>
<head>
<title>TestJsp</title>
</head>
<body>
<jsp:forward page="MyJsp2.jsp">
<jsp:param name="username" value="Ðì¾²"/>
<jsp:param name="password" value="<%=password%>"/>
<jsp:param name="date" value="<%=date.toLocaleString() %>"/>
</jsp:forward>
</body>
</html>
MyJsp2.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%request.setCharacterEncoding ("UTF-8");%>
<html>
<head>
<title>TestJsp</title>
</head>
<body>
<%
String username=request.getParameter("username");
String password=request.getParameter("password");
String date=request.getParameter("date");
%>
Username:<%=username %><br/>
Password:<%=password %><br/>
Date:<%=date %>
</body>
</html>
查看源文件:
<html>
<head>
<title>TestJsp</title>
</head>
<body>
Username:徐靜<br/>
Password:徐靜<br/>
Date:2008-5-27 13:21:01
</body>
</html>
運(yùn)行結(jié)果:
Username:徐靜
Password:徐靜
Date:2008-5-27 13:21:01
如果在地址欄輸入:http://localhost:8080/JspTest/MyJsp2.jsp?username=徐靜&&password=徐靜&&date=2008
運(yùn)行結(jié)果:
Username:Ðì¾²
Password:Ðì¾²
Date:2008
實(shí)例4:
源代碼:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<title>TestJsp</title>
</head>
<body>
<%
String strProtocol=request.getProtocol();
String strServlet=request.getServletPath();
String strMethod=request.getMethod();
String strHeader_accept=request.getHeader("accept");
String strHeader_accept_encoding=request.getHeader("accept-encoding");
String strHeader_host=request.getHeader("host");
String strAddr=request.getRemoteAddr();
String strHost=request.getRemoteHost();
String strName=request.getServerName();
int strPort=request.getServerPort();
Enumeration enum=request.getParameterNames();
%>
獲取客戶使用的協(xié)議:<%=strProtocol %><br/>
獲取客戶提交信息的頁面:<%=strServlet %><br/>
獲取客戶提交信息的方式:<%=strMethod %><br/>
獲取HTTP頭文件中的accept,accept-encoding和Host的值:<br/>
accept:<%=strHeader_accept %><br/>
accept-encoding:<%=strHeader_accept_encoding %><br/>
host:<%=strHeader_host %><br/>
獲取客戶的IP地址:<%=strAddr %><br/>
獲取客戶機(jī)的名稱:<%=strHost %><br/>
獲取服務(wù)器的名稱:<%=strName %><br/>
獲取服務(wù)器的端口號:<%=strPort %><br/>
獲取客戶端提交的所有參數(shù)的名字:<br/>
<%
while(enum.hasMoreElements())
{
String s=(String)enum.nextElement();
out.println(" "+s);
}
%>
</body>
</html>
地址欄輸入:http://localhost:8080/JspTest/MyJsp3.jsp?name=徐靜&&user=xuj&&pwd=1234
查看源文件:
<html>
<head>
<title>TestJsp</title>
</head>
<body>
獲取客戶使用的協(xié)議:HTTP/1.1<br/>
獲取客戶提交信息的頁面:/MyJsp3.jsp<br/>
獲取客戶提交信息的方式:GET<br/>
獲取HTTP頭文件中的accept,accept-encoding和Host的值:<br/>
accept:**
accept-encoding:gzip, deflate
host:localhost:8080
獲取客戶的IP地址:127.0.0.1
獲取客戶機(jī)的名稱:127.0.0.1
獲取服務(wù)器的名稱:localhost
獲取服務(wù)器的端口號:8080
獲取客戶端提交的所有參數(shù)的名字:
user name pwd