1. 程式人生 > 實用技巧 >Servlet---request物件

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.