HttpServletRequest介面中常用方法
阿新 • • 發佈:2018-11-09
HttpServletRequest介面繼承於ServletRequest介面。HttpServletRequest物件代表客戶端的請求,當客戶端通過HTTP協議訪問伺服器時,http請求頭中的所有資訊都封裝在這個物件中,通過HttpServletRequest提供的方法可以獲得客戶端請求的所有資訊。
例如,客戶端請求的地址是:http://www.xinjun.com/about/list?name=zhang&index=4565。HttpServletRequest常用方法如下:
- getHeader(string name)方法:根據header引數名稱獲取值 ;
- getHeaderNames()方法:獲取header裡面的引數名稱;
- getParameterMap()方法:獲取請求引數對應的map ;
- getParameter(name)方法:根據請求引數的名稱獲取對應的值;
- getRemoteAddr()方法:傳送請求的客戶端主機的IP;
- getScheme()方法:獲取正確的協議,如http協議;
- getServerName()方法:伺服器主機名;
- getServerPort()方法:伺服器上web應用的訪問埠;
- getContextPath()方法:獲取域名後的斜杆加工程名,也就是上面例子中的/about
- getRemoteAddr()方法:傳送請求的客戶端主機的IP;
- getRequestURI()方法:將URL的域名和尾隨的引數擷取掉,剩下的那部分就是URI,即/about/list部分;
- getRequestURL()方法:客戶請求的url,不包括引數資料;即例子中的http://www.xinjun.com/about/list部分;
- getMethod()方法:HTTP請求的的方法名,預設是GET,也可以指定PUT或POST;
- getRealPath(“/WEB-INF”)方法:獲取虛擬目錄的硬碟實際路徑;
【補充】
response的響應內容:response.setContentType(“text/html;charset=gbk”),才可以正常顯示頁面中文。 如果需要獲得引數則用String status = new String(request.getParameter(“username”).trim().getBytes(), “GBK”);獲得其內容。 另外一種方法是:用String eQuery=URLEncoder.encode(“中文”,”GBK”);按照引數編碼格式進行轉碼,在頁面中通過request.getParamter(“eQuery”)得到的引數是中文,但是在url中顯示的是16進位制或其他進位制的編碼。