Servlet---request对象

一.request对象

  解释:

    服务器接收到浏览器的请求后,会创建一个Request对象,对象中存储了此次请求相关的请求数据.

    服务器在调用Servlet时会创建的Request对象座位实参传递给Servlet的方法,比如service方法(或者doGet,doPost方法)

  1:获取请求行数据:

        //获取请求方式
        String method = req.getMethod();
        System.out.println(method);
        //获取请求url
        StringBuffer url = req.getRequestURL();
        System.out.println(url);
        //获取请求URI
        String uri = req.getRequestURI();
        System.out.println(uri);
        //获取请求协议
        String protocol = req.getScheme();
        System.out.println(protocol);

  

  2.获取请求头数据

    //获取请求头数据
        //获取指定的请求头数据
        String value = req.getHeader("User-Agent");
        System.out.println(value);
        //通过枚举类获取所有的请求头数据.
        //e中包含了请求头中的所有键
        Enumeration e  = req.getHeaderNames();
        while (e.hasMoreElements()){
            String key = (String)e.nextElement();
            value = req.getHeader(key);
            System.out.print(key+":"+value);
        }

  3.获取用户数据  (一般默认是英文,传输数据为中文时会乱码)

   ①根据方法:getParameter("前端网页,键的名称");根据键来获取键值

    //获取用.户数据(不管是post还是get数据都是被封存到req中的)
    //都可以使用getParameter
        String name = req.getParameter("uname");
        String pwd = req.getParameter("pwd");
        System.out.println("uname:"+name+"\t"+"pwd:"+pwd);

    ②获取所有用户数据

  

        //通过枚举类获取所有用户数据
        Enumeration e = req.getParameterNames();
        while(e.hasMoreElements()){
            String key = (String) e.nextElement();
            value = req.getParameter(key);
            System.out.println(key+":"+value);
        }

   

    ③直接获取用户get请求方式提交的数据

    方法:req.getQueryString();(直接获取get请求发送的查询信息)

String query = req.getQueryString();

 

  注意:

    上述的getParameter("key");不能获取网页中的多选选择结果

    可以使用 getParameterValues(); 返回一个字符串数组

    需要判断返回的数组是否为null再进行遍历,否则当fav为空时会报空指针异常.

    ④获取表单中用户多选的数据

    //获取单键多值 下例中fav为用户提交的爱好选项.
        String[] favs = req.getParameterValues("fav");
        if(favs!=null){
            for(String fav:favs){
                System.out.println(fav);
            }
        }

 注意:如果要获取的请求数据不存在,不会报错,返回值为null.

    

posted @ 2020-09-08 20:54  relo  阅读(170)  评论(0)    收藏  举报