1. 程式人生 > >javaEE之Response和Request

javaEE之Response和Request

【response】 在這裡插入圖片描述 我們在建立servlet時會覆蓋service()方法,doGet()或doPost(),方法中有兩個引數,一個代表請求的request和代表響應的response。 service方法中response的型別是ServletResponse,而doGet()或doPost()response的型別是HttpServletResponse,它是ServletResponse的子介面,功能和方法強大。

  1. 通過response設定響應行的狀態碼 setStatus(int sc)

  2. 通過response設定響應頭, 其中,add表示新增,而set表示設定

    setHeader(String name,String value) setDateHeader(String name,long date) setIntHeader(String name,int value) addHeader(String name,String value) addDateHeader(String name,long date) addIntHeader(String name,int value) 3.通過response設定響應體 1)響應體設定文字,編碼問題 response.setCharacterEnconding(“UTF-8”); response.setHeader(“Content-Type”,“text/html;charset=UTF-8”); 簡寫一行:response.setContentType(“text/html;charset=UTF-8”); 2 ) 設定響應體位元組 ServletOutputStream getOutputStream() 【request】 在這裡插入圖片描述

    1.通過request 獲得請求行 獲得請求方式:String getMethod() 獲得請求資源: String getRequestURI() StringBuffer getRequestURL() String getContextPath()—web應用名稱 String getQueryString()–get方式提交url地址後的引數 request.getRemoveAdrr()–獲得訪問的客戶端ip地址

2.通過request獲得請求頭 String request.getHeader(“name”) Enumeration s = request.getHeaderNames(); while(s.hasMoreElements()){ String nextElement = headerNames.nextElement(); System.out.println(nextElement+":"+request.getHeader(nextElement)); } *referer頭作用:執行訪問的來源,可以防盜鏈,規定的網址可以跳轉頁面。

3.通過request獲得請求體 請求體中的內容是post提交的請求引數: String request.getParameter(String name) Enumeration getParameterNames() Map<String,String[]> getParameterMap() *決解post提交方式亂碼的方式:request.setCharacterEncoding(“UTF-8”) parameter=request.getParameter(“name”); *決解get提交方式亂碼方式:new String(parameter.getByte(“ISO-8859-1”),“UTF-8”)

4.其它功能 1 )request物件也是一個儲存資料的域物件 setAttribute((String name,Object o),getAttribute(String name), removeAttribute(String name) 2 )request完成請求轉發 獲得請求轉發器 path是轉發地址 RequestDispatcher r= getRequestDispatcher(String psth); r.forward(ServletRequest request,ServletReponse response);

*注意request生命週期:訪問時建立,響應結束銷燬,域的作用範圍是一次請求中,要與ServletContext區別。 轉發與重定向區別: 1)重定向的位址列會發生改變,轉發的位址列不會 2)重定向可以訪問外部網站,轉發只能是內部資源 3)重定向是發生2次請求,轉發是發生一次請求 4)轉發的效能優於重定向 比如訪問的一個頁面是有許可權的,也是不希望輕易洩露,用轉發較好 另外重新整理頁面不會變,用重定向好。