•向客戶端輸出中文數據
用PrintWriter(字符流)發送數據:
示例:response.getWriter().write(“中國”);有沒有亂碼?
原因:以默認編碼發送數據ISO-8859-1(沒有中國二字編碼),此時會發生亂碼
解決辦法:
setCharacterEncoding(“UTF-8”);//更改編碼爲UTF-8
response.setHead(“Context-type”,”text/html;charset=UTF-8”);//告訴客戶端編碼方式
注意:不要忘記告訴客戶端的編碼方式。
由於經常改動編碼,response提供了一種更簡單的方式
response.setContentType(“text/html;charset=UTF-8”);其作用相當於以上兩條代碼。
•通過response實現請求重定向。
–請求重定向指:一個web資源收到客戶端請求後,通知客戶端去訪問另外一個web資源,這稱之爲請求重定向。
•地址欄會變,併發送2次請求,增加服務器負擔
•實現方式
–response.sendRedirect()
–實現原理:
•302/307狀態碼和location頭即可實現重定向
-----------------------------------------------------------------------------------------------------------------
//response細節
•getOutputStream和getWriter方法分別用於得到輸出二進制數據、輸出文本數據的ServletOuputStream、Printwriter對象。
•getOutputStream和getWriter這兩個方法互相排斥,調用了其中的任何一個方法後,就不能再調用另一方法。 會拋異常。
•Servlet程序向ServletOutputStream或PrintWriter對象中寫入的數據將被Servlet引擎從response裏面獲取,Servlet引擎將這些數據當作響應消息的正文,然後再與響應狀態行和各響應頭組合後輸出到客戶端。
•Serlvet的service方法結束後,Servlet引擎將檢查getWriter或getOutputStream方法返回的輸出流對象是否已經調用過close方法,如果沒有,Servlet引擎將調用close方法關閉該輸出流對象。
•HttpServletRequest對象代表客戶端的請求,當客戶端通過HTTP協議訪問服務器時,HTTP請求頭中的所有信息都封裝在這個對象中,開發人員通過這個對象的方法,可以獲得客戶這些信息。
----------------------------------------------------------------------------------------------------------
//response常用方法
•獲得客戶機信息
–getRequestURL方法返回客戶端發出請求時的完整URL。
–getRequestURI方法返回請求行中的資源名部分。
–getQueryString 方法返回請求行中的參數部分。
–getRemoteAddr方法返回發出請求的客戶機的IP地址
–getRemoteHost方法返回發出請求的客戶機的完整主機名
–getRemotePort方法返回客戶機所使用的網絡端口號
–getLocalAddr方法返回WEB服務器的IP地址。
–getLocalName方法返回WEB服務器的主機名
–getMethod得到客戶機請求方式
•獲得客戶機請求頭
–getHead(name)方法
–getHeaders(Stringname)方法
–getHeaderNames方法
•獲得客戶機請求參數(客戶端提交的數據)
–getParameter(name)方法
–getParameterValues(Stringname)方法
–getParameterNames方法
–getParameterMap方法 //做框架用,非常實用
----------------------------------------------------------------------------------------------------------------------