Response常見方法使用和問題

•向客戶端輸出中文數據

用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方法  //做框架用,非常實用

----------------------------------------------------------------------------------------------------------------------


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章