java中request常用方法小结
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得到客户机请求方式。
packagecom.yyz.request;
importjava.io.IOException;
importjava.io.OutputStream;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
publicclassRequestDemoextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
/**
*URL是URI的子集。
*URI用来标识一个资源。
*URL用来标识互联网上的一个资源。
*/
System.out.println(request.getRequestURL());//得到请求URL地址
System.out.println(request.getRequestURI());//得到请求的资源
System.out.println(request.getQueryString());
System.out.println(request.getRemoteAddr());//得到来访者IP
System.out.println(request.getRemoteHost());
//由于没有在dns上注册所以打印结果还是127.0.0.1,如果是百度访问这个程序,则打印www.baidu.com
System.out.println(request.getRemotePort());//得到请求的资源
System.out.println(request.getMethod());//得到请求的资源
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
doGet(request,response);
}
}
在浏览器地址栏输入:http://localhost:8080/test/servlet/RequestDemo后后台输出入下图:
二、获得客户机请求头:
1.getHeader(Stringname)方法
2.getHeaders(Stringname)方法
3.getHeaderNames()方法
packagecom.yyz.request;
importjava.io.IOException;
importjava.util.Enumeration;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
//获取请求头
publicclassRequestDemoextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
Stringhead=request.getHeader("Accept-Encoding");
//有些浏览器不支持压缩数据
if(head.contains("gzip")){
//输出压缩数据
}else{
//输出不压缩数据
}
//获取指定名称的头的所有值
Enumeratione=request.getHeaders("Accept-Encoding");
while(e.hasMoreElements()){
Stringvalue=(String)e.nextElement();
System.out.println(value);
}
System.out.println("------------------------");
//获取所有的头和值
e=request.getHeaderNames();
while(e.hasMoreElements()){
Stringname=(String)e.nextElement();
String value=request.getHeader(name);
System.out.println(name+"="+value);
}
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
doGet(request,response);
}
}
在浏览器访问该程序,后台输出如下:
三、获得客户机请求参数(客户端提交的数据):
1.getParameter(name)方法
2.getParameterValues(Stringname)方法
3.getParameterNames方法
4.getParameterMap方法,做框架时大量使用
packagecom.yyz.request; importjava.io.IOException; importjava.util.Enumeration; importjava.util.Map; importjava.util.Map.Entry; importjavax.servlet.ServletException; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; //获取请求数据 publicclassRequestDemoextendsHttpServlet{ publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ //http://localhost:8080/test/servlet/RequestDemo?name=yyz Stringvalue=request.getParameter("name"); System.out.println(value); //http://localhost:8080/test/servlet/RequestDemo?like=sing&like=dance Stringlikes[]=request.getParameterValues("like"); if(likes!=null){ for(Stringlike:likes){ System.out.println(like); } } //下面是这种遍历的专业写法,获取数组数据的方式(可避免空指针异常) for(inti=0;likes!=null&&i<likes.length;i++){ System.out.println(likes[i]); } //获取所有名称,并根据名称获取值 Enumeratione=request.getParameterNames(); while(e.hasMoreElements()){ Stringname=(String)e.nextElement(); value=request.getParameter(name); System.out.println(name+"="+value); } System.out.println("----------------------"); //得到request对象中用来封装数据的Map集合 Map<String,String[]>map=request.getParameterMap(); for(Entry<String,String[]>me:map.entrySet()){ Stringname=me.getKey(); String[]v=me.getValue(); System.out.println(name+"="+v[0]); } } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doGet(request,response); } }
相关文章