Resquest对象主要用于接收客户端通过HTTP协议连接传输到服务器端的数据。在客户端的请求中如果有参数,则该对象就有一个参数列表,它通常是HttpServlet-Request的子类,其作用域就是一次Request请求。Request对象包括很多方法,主要有以下几种。
object getAttribute(String name)
返回指定属性的属性值
Enumeration getAttributeNames()
返回所有可用属性名的枚举
String getCharacterEncoding()
返回字符编码方式
int getContentLength()
返回请求体的长度(以字节数)
String getContentType()
得到请求体的MIME类型
ServletInputStream getInputStream()
得到请求体中一行的二进制流
String getParameter(String name)
返回name指定参数的参数值
Enumeration getParameterNames()
返回可用参数名的枚举
String[] getParameterValues(String name)
返回包含参数name的所有值的数组
String getProtocol()
返回请求用的协议类型及版本号
String getScheme()
返回请求用的计划名,如:http.https及ftp等
String getServerName()
返回接受请求的服务器主机名
int getServerPort()
返回服务器接受此请求所用的端口号
BufferedReader getReader()
返回解码过了的请求体
String getRemoteAddr()
返回发送此请求的客户端IP地址
String getRemoteHost()
返回发送此请求的客户端主机名
void setAttribute(String key,Object obj)
设置属性的属性值
String getRealPath(String path)
返回一虚拟路径的真实路径
接下来在实际的例子中看一下各个方法的用法和功能:
<%@ page contentType="text/html;charset=gb2312"%>
<%request.setCharacterEncoding("gb2312");%>
<html>
<head>
<title>request对象_例1</title>
</head>
<body bgcolor="#FFFFF0">
<form action="" method="post">
<input type="text" name="qwe">
<input type="submit" value="提交">
</form>
请求方式:<%=request.getMethod()%><br />
请求的资源:<%=request.getRequestURI()%><br />
请求用的协议:<%=request.getProtocol()%><br />
请求的文件名:<%=request.getServletPath()%><br />
请求的服务器的IP:<%=request.getServerName()%><br />
请求服务器的端口:<%=request.getServerPort()%><br />
客户端IP地址:<%=request.getRemoteAddr()%><br />
客户端主机名:<%=request.getRemoteHost()%><br />
表单提交来的值:<%=request.getParameter("qwe")%><br />
</body>
</html>
<%@ page contentType="text/html;charset=gb2312"%>
<%request.setCharacterEncoding("gb2312");%>
<%@ page import="java.util.Enumeration"%>
<html>
<head>
<title>request对象_例2</title>
</head>
<body bgcolor="#FFFFF0">
<form action="" method="post">
用户名:<input type="text" name="username">
密 码:<input type="text" name="userpass">
<input type="submit" value="进入" >
</form>
<%
String str="";
if(request.getParameter("username")!=null && request.getParameter("userpass")!=null){
Enumeration enumt = request.getParameterNames();
while(enumt.hasMoreElements()){
str=enumt.nextElement().toString();
out.println(str+":"+request.getParameter(str)+"<br />");
}
}
%>
</body>
</html>
<%@ page contentType="text/html;charset=gb2312"%>
<%request.setCharacterEncoding("gb2312");%>
<html>
<head>
<title>request对象_例3</title>
</head>
<body bgcolor="#FFFFF0">
<form action="" method="post">
擅长:<input type="checkbox" name="cb" value="ON1">VC++
<input type="checkbox" name="cb" value="ON2">JAVA
<input type="checkbox" name="cb" value="ON3">DELPHI
<input type="checkbox" name="cb" value="ON4">VB
<br />
<input type="submit" value="进入" name="qwe">
</form>
<%
if(request.getParameter("qwe")!=null ){
for(int i=0;i<request.getParameterValues("cb").length;i++){
out.println("cb"+i+":"+request.getParameterValues("cb")[i]+"<br />");
}
out.println(request.getParameter("qwe"));
}
%>
</body>
</html>
