HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。
request常用方法:
一、获取客户机环境信息常见方法:
1.getRequestURL方法返回客户端发出请求时的完整URL。
2.getRequestURI方法返回请求行中的资源名部分。
3.getQueryString方法返回请求行的参数部分。
4.getRemoteAddr方法返回发出请求的客户机的IP地址。
5.getRemoteHost方法返回发出请求的客户机的完整主机名。
6.getRemotePort方法返回客户机所使用的网络端口号。
7.getLocalAddr方法返回WEB服务器的IP地址。
8.getLocalName方法返回WEB服务器的主机名。
9.getMethod得到客户机请求方式。
在浏览器地址栏输入:http://localhost:8080/test/servlet/RequestDemo后后台输出入下图:
二、获得客户机请求头:
1.getHeader(String name)方法
2.getHeaders(String name)方法
3.getHeaderNames()方法
在浏览器访问该程序,后台输出如下:
三、获得客户机请求参数(客户端提交的数据):
1.getParameter(name)方法
2.getParameterValues(String name)方法
3.getParameterNames方法
4.getParameterMap方法,做框架时大量使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
package
com.yyz.request;
import
java.io.IOException;
import
java.util.Enumeration;
import
java.util.Map;
import
java.util.Map.Entry;
import
javax.servlet.ServletException;
import
javax.servlet.http.HttpServlet;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
//获取请求数据
public
class
RequestDemo
extends
HttpServlet {
public
void
doGet(HttpServletRequest request, HttpServletResponse response)
throws
ServletException, IOException {
//http://localhost:8080/test/servlet/RequestDemo?name=yyz
String value = request.getParameter(
"name"
);
System.out .println(value);
//http://localhost:8080/test/servlet/RequestDemo?like=sing&like=dance
String likes[] = request.getParameterValues(
"like"
);
if
(likes!=
null
){
for
(String like : likes){
System.out.println(like);
}
}
//下面是这种遍历的专业写法,获取数组数据的方式(可避免空指针异常)
for
(
int
i=
0
;likes!=
null
&&i
System.out.println(likes[i]);
}
//获取所有名称,并根据名称获取值
Enumeration e = request.getParameterNames();
while
(e.hasMoreElements()){
String name = (String) e.nextElement();
value = request.getParameter(name);
System.out.println(name+
"="
+value);
}
System.out.println(
"----------------------"
);
//得到request对象中用来封装数据的Map集合
Map
for
(Entry
String name = me.getKey();
String [] v = me.getValue();
System.out.println(name+
"="
+v[
0
]);
}
}
public
void
doPost(HttpServletRequest request, HttpServletResponse response)
throws
ServletException, IOException {
doGet(request,response);
}
}
|