Servlet---request物件
阿新 • • 發佈:2020-09-08
一.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.