request对象用来接收客户端提交的各种信息。客户端的请求信息被封装在request中,通过它才能了解到客户的需求,然后作出相应。request是HttpServletRequest类的实例。request具有作用域,在完成客户端的请求之前,该对象一直有效。
request对象的主要作用
一、request对象最主要的一个作用就是用来封装用户提 交的表单信息,然后通过如下两个方法来获取用户 提交的表单信息。
getParameter(Sting name):获取客户端传给服务器的 参数值。
getParameterValues(Sting name):获得某一个参数的 所有的值。
二、使用request对象回可以获取提交请求的客户端信息 及接收请求的服务器端信息。
客户端请求 | 服务器方法 |
---|---|
客户端地址 | getRequestURL() |
IP地址 | getRemoteAdds() |
服务器名字 | getServerName() |
服务器端口号 | getServerPort() |
脚本文件的文件路径 | getServletPath() |
body的长度 | getContentLenght |
请求体的MIME类型 | getContentType() |
协议类型和版本号 | getProtocol() |
下面是一个小例子
功能:提交表单后实现用户登录,并且查看信息
request.jsp
<body>
<h1>request内置对象</h1>
<hr>
<%
request.setCharacterEncoding("utf-8"); //解决中文乱码问题,无法解决URL传递中文出现的乱码问题。
request.setAttribute("password", "123456");
%>
用户名:<%=request.getParameter("username") %>
爱好:<%
if(request.getParameterValues("favorite")!= null){
String[] favorites = request.getParameterValues("favorite");
for(int i=0;i<favorites.length;i++){
out.println(favorites[i]+" ");
}
}
%><br>
密码:<%=request.getAttribute("password") %><br>
请求体的MIME类型:<%=request.getContentType() %><br>
协议类型及版本号: <%=request.getProtocol() %><br>
服务器主机名 :<%=request.getServerName() %><br>
服务器端口号:<%=request.getServerPort() %><BR>
请求文件的长度 :<%=request.getContentLength() %><BR>
请求客户端的IP地址:<%=request.getRemoteAddr() %><BR>
请求的真实路径:<%=request.getRealPath("request.jsp") %><br>
请求的上下文路径:<%=request.getContextPath() %><BR>
</body>
login.jsp
<body>
<h1>用户注册</h1>
<hr>
<form name="regForm" action="request.jsp" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>爱好:</td>
<td>
<input type="checkbox" name="favorite" value="read">读书
<input type="checkbox" name="favorite" value="music">音乐
<input type="checkbox" name="favorite" value="movie">电影
<input type="checkbox" name="favorite" value="internet">上网
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
</body>