天天看點

JavaEE學習:response(二)二. HttpServletResponse進階

二. HttpServletResponse進階

    1. 通過抓包工具抓取Http響應

JavaEE學習:response(二)二. HttpServletResponse進階

因為response代表響應,是以我們可以通過該對象分别設定Http響應的響應行,響   應頭和響應體!!!

     2. 通過response設定響應行

             設定響應行的狀态碼

             setStatus

(int sc)

    3.通過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表示設定

    4.通過response設定響應體

a. 響應體設定文本

PrintWriter

getWriter

()

獲得字元流,通過字元流的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");就可以解決頁面輸出中文亂碼問題。

b. 響應頭設定位元組

ServletOutputStream

getOutputStream

()

獲得位元組流,通過該位元組流的write(byte[] bytes)可以向response緩沖區中寫入字  節,在由Tomcat伺服器将位元組内容組成Http響應傳回給浏覽器。