HttpServletRequest

 


作用: 1. 获取请求消息数据 2. 完成请求转发 3. 是域对象

 


获取请求行 GET /uri HTTP/1.1

String getMethod() 获取请求方式

String getQueryString() 获取请求参数

String getContextPath() 获取虚拟目录

String getRemoteAddr() 获取ip地址

 


获取请求头

 String getHeader(String name) (user-agent)

       String header = request.getHeader("user-agent") ;

            if(header.contains("MSIE")) {

                            System.out.println("IE浏览器...............");

                            response.sendRedirect("http://www.baidu.com") ;

                   }else if(header.contains("Chrome")) {

                            System.out.println("谷歌浏览器...............");

                            response.sendRedirect("http://www.jd.com") ;

                   }else if(header.contains("Firefox")) {

                            System.out.println("火狐浏览器...............");

                   }else  {

                            System.out.println("其它浏览器...............");

             }

 


HttpServletRequest获取请求体

A: 获取请求体数据

* BufferedReader getReader()

* ServletInputStream getInputStream()

Doget:

String qs = request.getQueryString();

                   String line = request.getQueryString() ;           // userName=zhangsan&password=123

                   String[] split = line.split("&") ;

                   for(String data : split) {

                            String[] info = data.split("=") ;

                            System.out.println(request.getMethod() + "----" + info[0] + "---" + info[1]);            

                            

                            /*

                             *  GET----username---zhangsan

                                     GET----password---123

                             */

                   }

Dopost:

BufferedReader reader = request.getReader() ;

                   String line = reader.readLine() ; // userName=zhangsan&password=123

                   String[] split = line.split("&") ;

                   for(String data : split) {

                            String[] info = data.split("=") ;

                            System.out.println(request.getMethod() + "----" + info[0] + "---" + info[1]);            

                            // POST----userName---qq

                            // POST----password---9

         }

 

 


HttpServletRequest获取请求参数通用的方式

* GET POST 请求通用的获取数据的方式

 String getParameter(String name): 根据名称获取对应的请求参数的值

                Enumeration getParameterNames(): 获取所有的请求参数的名称

                Map<String , String[]> getParameterMap(): 获取所有的请求参数对应的Map集合, 键是请求参数的名称 ,值是请求参数的值

                String[] getParameterValues(String name): 根据名称获取对应的请求参数的值对应的数组

                String userName = request.getParameter("userName");

                System.out.println(request.getMethod()+"----"+userName);         

                System.out.println("------------------");

                Enumeration names = request.getParameterNames();

                while(names.hasMoreElements()){

                            String name = (String) names.nextElement();

                            String value = request.getParameter(name);

                            System.out.println(name+"---"+value);

                   }

                   Map<String,String[]> map = request.getParameterMap();

                   Set<Entry<String, String[]>> entrySet = map.entrySet();

                   for (Entry<String, String[]> entry : entrySet) {

                            String key = entry.getKey();

                            String[] value = entry.getValue();

                            System.out.println(key + "----" + Arrays.toString(value));

                   }

                   User user = new User() ;

                   try {

                            BeanUtils.populate(user, map) ;                        // User [userName=zhangsan, password=888, hobby=[1, 2, 3]]

                   } catch (IllegalAccessException e) {

                            e.printStackTrace();

                   } catch (InvocationTargetException e) {

                            e.printStackTrace();

                   }                 

                   System.out.println(user);

                   }

 

posted on 2017-02-19 12:46  LoaderMan  阅读(229)  评论(0编辑  收藏  举报

导航