• 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);
    
                       }
    
  • 相关阅读:
    第27课二阶构造模式(上)---------出现的背景
    第26课 静态成员函数
    第25课类的静态成员变量
    第24课经典问题解析(下)--------类的成员函数和成员变量隶属某个具体对象吗
    第24课经典问题(中)-----关于const对象的疑问
    第24课经典的问题(上)---------对象的构造顺序与析构顺序
    第23课 神秘的临时对象
    断剑重铸007
    DG on Windows 10 S: 执行任意代码
    断剑重铸006
  • 原文地址:https://www.cnblogs.com/loaderman/p/6415490.html
Copyright © 2020-2023  润新知