2020-03-18

一)Response對象的概述

一、什么是Response

? ? 我們開發(fā)的軟件是B/S結構的軟件,是可以通過瀏覽器訪問服務器的軟件。從瀏覽器輸入一個地址,訪問服務器的這個過程稱為請求。服務器接收到請求,需要進行處理,處理以后,還需要將處理結果發(fā)回瀏覽器端顯示,這個過程稱為響應

(二)Response對象的API

一、Response關于響應行的方法

?? ?setStatus(int sc)

?? ?設置響應的狀態(tài)碼

?? ?? ? 200成功

?? ?? ? 302重定向

?? ?? ? 304查找本地緩存

?? ?? ? 404請求資源不存在

?? ?? ? 500服務器內部錯誤

二、Response關于響應頭的方法

?? ?setDateHeader(String name, long date)

?? ?setHeader(String name, String value)

?? ?setIntHeader(String name, int value)

? ? set開頭的方法用于設置:針對一個key對應一個value的情況

?? ?? ? 舉例:原頭信息Content-Type:text/html

?? ?? ? 調用setHeader("Content-Type","text/html");

?? ?? ? 最終結果:Content-Type:text/html

? ??addDateHeader(String name, long date)

?? ?addHeader(String name, String value)

?? ?addIntHeader(String name, int value)

? ? add開頭的方法用于追加:針對一個key對應多個value的情況

?? ??? ?舉例:原頭信息Content-Type:text/html

????????調用addHeader("Content-Type","text/plain");

????????最終結果:Content-Type:text/html,text/plain

三、Response關于響應體的方法

?? ?getOutputStream() 將二進制字節(jié)發(fā)送到客戶端

?? ?getWriter() 將字符文本發(fā)送到客戶端

? ? 用于向瀏覽器端輸出內容

四、Response其他的API

? ??addCookie(Cookie cookie)

? ??服務器向瀏覽器回寫Cookie的方法

? ??sendRedirect(String location)

? ??重定向的方法

?? ?setContentType(String type)

?? ?設置瀏覽器打開頁面時候采用的字符集

?? ?setCharacterEncoding(String charset)

?? ?設置響應字符流的緩沖區(qū)的字符集

五、Response對象的API的代碼演示

(1)設置狀態(tài)碼

(2)完成重定向

1)重定向:是302狀態(tài)碼和Location響應頭結合使用的效果

2)實際開發(fā)中可以使用response.sendRedirect("/web01/ResponseDemo2");替換重定向那兩句的寫法

(3)完成定時刷新效果

六、頁面定時跳轉的擴展

(1)使用JS完成讀秒的效果

(2)在HTML中完成頁面跳轉

使用JS完成讀秒效果

(三)Response對象響應的中文亂碼處理

一、使用字節(jié)流響應中文

1、編寫代碼

2、向頁面輸出中文是否會有亂碼?不一定!

3、原因:其實這個亂碼的產生,與中文轉成字節(jié)數組,以及瀏覽器的打開方式(打開的時候采用的默認字符集)有關

4、解決:將中文轉成字節(jié)數組的時候,和瀏覽器默認打開的時候采用的字符集一致即可

二、使用字符流響應中文

1、編寫代碼

2、向頁面輸出中文是否會有亂碼?一定亂碼

3、原因:字符流是有緩沖區(qū)的,Response獲得字符流,老外設計默認的緩沖區(qū)編碼是ISO-8859-1,這個字符集不支持中文

4、解決:設置Response獲得字符流緩沖區(qū)的編碼,和設置瀏覽器默認打開時采用的字符集一致即可

(四)Request對象的概述及API的介紹

一、Request對象的概述

什么是Request對象

我們開發(fā)的軟件都是B/S架構的軟件,從瀏覽器向服務器提交一些數據時,將這些數據內容進行封裝,封裝成一個請求對象,即Request對象

二、Request對象的API

1、獲得客戶端的信息

getMethod()? ? 獲得請求的方式

getQueryString()? ? 獲得查詢字符串的(即請求路徑后的提交參數字符串)

getRequestURI()? ? 獲得請求路徑的URI

getRequestURL()?? ?獲得請求路徑的URL

getRemoteAddr()? ? 獲得客戶端的IP地址

2、獲得請求頭的方法

getHeader? ? 獲得一個Key對應一個Value的請求頭

getHeaders? ? 獲得一個Key對應多個Value的請求頭

3、獲得請求參數的方法

getParameter? ? 獲得提交的參數(一個name對應一個value)

getParameterValues? ? 獲得提交的參數(一個name對應多個value)

getParameterMap()? ? 獲得提交的參數,將提交的參數名稱和對應的值存入到一個Map集合中

4、Request作為域對象存取數據的方法

setAttribute? ? 向Request域中存數據

getAttribute? ? 從Request域中取數據

removeAttribute? ? 從Request域中移除數據

三、Request對象的API的代碼演示

1、Request對象獲取客戶端信息

2、Request獲得請求頭的信息

四、Request對象接收表單請求參數

1、編寫一個靜態(tài)頁面

2、接收請求參數

3、Request對象接收表單請求參數的中文亂碼處理

? ? POST方式接收中文

? ? GET方式接收中文

作者:李霜_9191

鏈接:http://www.itdecent.cn/p/645e72abf6d2

來源:簡書

著作權歸作者所有。商業(yè)轉載請聯系作者獲得授權,非商業(yè)轉載請注明出處。

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • (一)Response對象的概述 一、什么是Response我們開發(fā)的軟件是B/S結構的軟件,是可以通過瀏覽器訪問...
    01_ff7c閱讀 234評論 0 0
  • Response&Request (一)Response對象的概述 一、什么是Response 我們開發(fā)的軟件...
    小湯源O閱讀 132評論 0 0
  • Response&Request (一)Response對象的概述 一、什么是Response 我們開發(fā)的軟件...
    你養(yǎng)豬嗎閱讀 184評論 0 0
  • Response&Request (一)Response對象的概述 一、什么是Response 我們開發(fā)的軟件...
    董宇浩閱讀 126評論 0 0
  • day10 (一)Response對象的概述 一、什么是Resp...
    李霜_9191閱讀 150評論 0 0

友情鏈接更多精彩內容