servlet_request获取请求头和请求数据

    request几个常用的方法

 1         //客户端IP
 2         System.out.println(request.getRemoteAddr());
 3         //客户端如果在DNS注册,就返回注册那个名称,如果没有,就返回IP
 4         System.out.println(request.getRemoteHost());
 5         //http://..........servlet?name=sdfasdf,返回name=sdfasdf
 6         System.out.println(request.getQueryString());
 7         System.out.println("*********************************");
 8         //返回客户端浏览器所用的端口,这个是变的
 9         System.out.println(request.getLocalPort());
10         //返回客户端的地址,本机返回localhost
11         System.out.println(request.getLocalName());
12         System.out.println("*********************************");
13         //返回请求地址,例如http://localhost:8080/day03/servlet/RequestDemo1,
14         //那么这个方法就返回day03/servlet/RequestDemo1
15         System.out.println(request.getRequestURI());
16         //返回资源在互联网的地址,http://localhost:8080/day03/servlet/RequestDemo1
17         System.out.println(request.getRequestURL());
18         //返回请求方式
19         System.out.println(request.getMethod());

  下面取数据,我总结了五种方式

 1        System.out.println("------------------获取方式1------------------");
 2         request.getParameter("username");
 3         
 4         System.out.println("------------------获取方式2------------------");
 5         Enumeration e = request.getParameterNames();
 6         while(e.hasMoreElements()){
 7             String str = (String) e.nextElement();
 8             String value = request.getParameter(str);
 9             System.out.println(str + "=" + value);
10         }
11         
12         System.out.println("------------------获取方式3------------------");
13         //这个获取如果客户端提交两个username,就用这个
14         request.getParameterValues("username");
15         
16         System.out.println("------------------获取方式4------------------");
17         Map map = request.getParameterMap();
18         User user = new User();
19         try {
20             /*
21                  通过request.getParameterMap()获取全部的数据
22                   这里用到BeanUtils的populate方法,它会自动给你
23                   装载到这个user类里面
24                   这个user类,一般情况我们是按照提交的表单来设计
25                   BeanUtils还有一个方法copyProperties,它可以帮助我们
26                   把formbean符合user的属性进行copy
27                   
28                   这是做框架用的
29              */
30             BeanUtils.populate(user, map);
31 //            BeanUtils.copyProperties(user, formbean);   //bean拷贝
32         } catch (Exception e1) {
33             e1.printStackTrace();
34         }
35         
36         System.out.println("------------------获取方式5------------------");
37         /*
38          *     这个方式我没测试,但是肯定能获取到
39          * */
40         InputStream in =  request.getInputStream();
41         int len;
42         byte[] buffer = new byte[1024];
43         while((len = in.read(buffer)) > 0){
44             System.out.println(new String(buffer,0,len));
45         }

  上面有一个方式用到了BeanUtils,如果大家想测试这个,就下载一个BeanUtls,注意啊,这个BeanUtils在运行是需要一个logger4j.jar的支持

posted @ 2013-12-26 14:19  哎呦喂,我的小祖宗╰つ  阅读(899)  评论(0编辑  收藏  举报