1.
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。
2.
l获得客户机信息
•getRequestURL方法返回客户端发出请求时的完整URL。
•getRequestURI方法返回请求行中的资源名部分。
•getQueryString方法返回请求行中的参数部分。
•getRemoteAddr方法返回发出请求的客户机的IP地址
•getRemoteHost方法返回发出请求的客户机的完整主机名
•getRemotePort方法返回客户机所使用的网络端口号
•getLocalAddr方法返回WEB服务器的IP地址。
•getLocalName方法返回WEB服务器的主机名
•getMethod得到客户机请求方式
3.
l获得客户机请求头
•getHeader(name)方法
•getHeaders(Stringname)方法//一个请求头可能有几个值,比如a=b,a=c;这种方式相比上面的getHead(name)可以得到更多的值
•getHeaderNames方法
//用getHeaderNames可以获得所有请求头的名称的枚举,通过迭代枚举,可以得到每一个名称所对应的值
Enumeration e=request.getHeaderNames();
while(e.hasMoreElements()){
String name=(String) e.nextElement();
String value=request.getHeader(name);
System.out.println(name+"="+value);
}
while(e.hasMoreElements()){
String name=(String) e.nextElement();
String value=request.getHeader(name);
System.out.println(name+"="+value);
}
4.
l获得客户机请求参数(客户端提交的数据)
(1)getParameter(name)方法//获取一个参数,如果有多个,那么只会获得第一个;不存在这个参数则返回null
(2)getParameterValues(String name)方法
获得一个参数的多个值,比如
http://localhost:8080/Servlet/servlet/RequestDemo1?name=abc&name=ced
中参数name有两个值
String[] values=request.getParameterValues("name");
for(int i=0;values!=null&&i<values.length;i++){
System.out.println(values[i]);
}
for(int i=0;values!=null&&i<values.length;i++){
System.out.println(values[i]);
}
(3)getParameterNames方法//得到所有的请求参数的名称
for(Enumeration e=request.getParameterNames();e.hasMoreElements();){
String name=(String)e.nextElement();
String values[]=request.getParameterValues(name);
for(int i=0;values!=null&&i<values.length;i++){
System.out.println(name+"="+values[i]);
}
}
String name=(String)e.nextElement();
String values[]=request.getParameterValues(name);
for(int i=0;values!=null&&i<values.length;i++){
System.out.println(name+"="+values[i]);
}
}
(4)getParameterMap方法 //将请求参数放到map集合中去:Map<String,String[]>
Map<String, String[]> map = request.getParameterMap();
for (Map.Entry<String, String[]> me : map.entrySet()) {
String name = me.getKey();
String[] values = me.getValue();
for (int i = 0; values != null && i < values.length; i++) {
System.out.println(name + "=" + values[i]);
}
}
for (Map.Entry<String, String[]> me : map.entrySet()) {
String name = me.getKey();
String[] values = me.getValue();
for (int i = 0; values != null && i < values.length; i++) {
System.out.println(name + "=" + values[i]);
}
}
(5)
getInputStream