HttpServletResponse - 和http協議相關的類型
傳輸狀態碼,方法如下
sendError(int sc)sendError(int sc String msg)sendStatus(int sc)響應頭:Content—Type,Refresh,Location等等,以下響應頭分別適用于單值或多值,還可以適用于加類型的響應頭。
setHeader(String name , String value) ;addHeader(String name , String value) ;setIntHeader(String name , int value) ;addIntHeader(String name , int value) ;setDateHeader(String name , long value) ; 適用于單值的毫秒類型的響應頭。addDateHeader(String name , long value) ;
通過響應頭的設置可以完成,定向轉發,定時刷新,禁用緩存的行為。
標簽可以代替響應頭。響應體:通常是html、也可以是圖片
ServletOutputStream ,用來向客戶端發送字節數據PRintWriter , 用來向客戶端發送字符數據!需要設置編碼。設置編碼為response.setCharacterEncoding(“utf-8”) ;兩個流不能同時用。重新定向的方法 sendRedirect(“地址信息”) ;
封裝了所有客戶端的請求數據。
獲取常用信息
獲取客戶機的請求方式 , request.getMethod() ;獲取客戶機的ip , request.getRemoteAddr() ;獲取請求頭
String getHeader(String name)int getIntHeader(String name)long getDateHeader(String name)Enumeration getHeaders(String name) 獲取多值請求頭
可以通過獲取User-Agent識別用戶的瀏覽器和系統信息。
獲取請求的URL
例: http://localhost:8080/myproject/MyServlet?username=xxxx&passWord=yyyyy
String getScheme() ; 獲取協議 : http
String getServerName() ; 獲取服務器名 : localhostString getServerPort() ; 獲取服務器端口 : 8080String getContextPath() ; 獲取項目名稱 : /myprojectString getServletPath() ; 獲取servlet部分 : /MyServletString getQueryString() ; 獲取參數部分 : username=xxxx&password=yyyyyString getRequestURI() ; 獲取請求URI,等于項目名加Servlet路徑 : /myproject/MyServletString getRequestURL() ; 獲取請求URL,等于不包含參數的整個請求路徑 : http://localhost:8080/myproject/MyServlet獲取請求參數
String getParameter(String name) ; 獲取指定名稱的參數String[] getParameterValues(String name) ; 適用于獲取多值的指定名稱的參數Enumeration getParameterNames() ; 獲取所有請求參數的名稱MapURL編碼
是客戶端與服務器之間傳遞參數的一種方式。URL編碼需要先指定一種字符編碼,把字符串解碼后,得到byte[] ,經過處理顯示出來Post請求默認使用URL編碼,tomcat會自動使用用URL解碼。URL編碼: String username = URLEncoder.encode(username , “utf-8”) ;URL解碼: String username = URLDecoder.decode(username , “utf-8”) ;新聞熱點
疑難解答