1.response
ServletResponse -- 通用的response提供了一個響應應該具有最基本的屬性和方法
|
|-HttpServletResponse -- 在ServletResponse的基礎上針對於HTTP協議增加了很多強化的屬性和方法
3> Notice:
a. response對象中對Content-Type響應頭進行了封裝,可以使用一下代碼代替 2>
response.setContentType("text/html;charset=utf-8");
b. 如果設置了Content-Type,服務器會自動的設置 characterEncoding,因此解決亂碼只需要設置Content-Type響應頭一行代碼就可以了,但是為了代碼的可讀性更高,一般還是建議同時設置 characterEncoding 和 Content-Type.
1.response的運行流程
2.通過抓包工具抓取Http響應
因為response代表響應,所以我們可以通過該對象分別設置Http響應的響應行,響 應頭和響應體
3.通過response設置響應行
設置響應行的狀態碼
setStatus(int sc)
4.通過response設置響應頭
addHeader(
String name,
String value)
addIntHeader(
String name, int value)
addDateHeader(
String name, long date)
setHeader(
String name,
String value)
setDateHeader(
String name, long date)
setIntHeader(
String name, int value)
其中,add表示添加,而set表示設置
重定向需要:1.狀態碼:302
2.響應頭:location 代表重定向地址
5.通過response設置響應體
(1)響應體設置文本
獲得字符流,通過字符流的write(
String s)
方法可以將字符串設置到response 緩沖區中,隨后Tomcat會將response緩沖區中的內容組裝成Http響應返回給瀏覽 器端。
關於設置中文的亂碼問題
原因:response緩沖區的默認編碼是iso8859-1,此碼表中沒有中文,可以通過 response的setCharacterEncoding(
String charset)
設置response的編碼
但我們發現客戶端還是不能正常顯示文字
原因:我們將response緩沖區的編碼設置成UTF-8,但瀏覽器的默認編碼是本地系 統的編碼,因為我們都是中文系統,所以客戶端瀏覽器的默認編碼是GBK,我們可以 手動修改瀏覽器的編碼是UTF-8。
我們還可以在代碼中指定瀏覽器解析頁面的編碼方式,
通過response的setContentType(
String type)
方法指定頁面解析時的編碼是UTF-8
response.setContentType("text/html;charset=UTF-8");
上面的代碼不僅可以指定瀏覽器解析頁面時的編碼,同時也內含 setCharacterEncoding的功能,所以在實際開發中只要編寫 response.setContentType("text/html;charset=UTF-8");就可以解決頁面輸出中文亂碼問題。