作業(yè):
(一)Response對(duì)象的概述
一遣总、什么是Response我們開(kāi)發(fā)的軟件是B/S結(jié)構(gòu)的軟件埃脏,是可以通過(guò)瀏覽器訪問(wèn)服務(wù)器的軟件诗赌。
從瀏覽器輸入一個(gè)地址揽惹,訪問(wèn)服務(wù)器的這個(gè)過(guò)程稱為請(qǐng)求。服務(wù)器接收到請(qǐng)求四康,需要進(jìn)行處理搪搏,處理以后,還需要將處理結(jié)果發(fā)回瀏覽器端顯示闪金,這個(gè)過(guò)程稱為響應(yīng)
(二)Response對(duì)象的API
一疯溺、Response關(guān)于響應(yīng)行的方法setStatus(int sc)設(shè)置響應(yīng)的狀態(tài)碼
200成功
302重定向
304查找本地緩存
404請(qǐng)求資源不存在
500服務(wù)器內(nèi)部錯(cuò)誤
二、Response關(guān)于響應(yīng)頭的方法
setDateHeader(String name, long date)
setHeader(String name, String value)
setIntHeader(String name, int value)
set開(kāi)頭的方法用于設(shè)置:針對(duì)一個(gè)key對(duì)應(yīng)一個(gè)value的情況舉例:原頭信息
Content-Type:text/html調(diào)用setHeader("Content-Type","text/html");最終結(jié)果:Content-Type:text/htmladdDateHeader(String name, long date)addHeader(String name, String value)addIntHeader(String name, int value)add
開(kāi)頭的方法用于追加:針對(duì)一個(gè)key對(duì)應(yīng)多個(gè)value的情況舉例:原頭信息Content-Type:text/html調(diào)用addHeader("Content-Type","text/plain");最終結(jié)果:Content-Type:text/html,text/plain
三哎垦、Response關(guān)于響應(yīng)體的方法getOutputStream()將二進(jìn)制字節(jié)發(fā)送到客戶端getWriter()將字符文本發(fā)送到客戶端用于向?yàn)g覽器端輸出內(nèi)容
四囱嫩、Response其他的
APIaddCookie(Cookie cookie)服務(wù)器向?yàn)g覽器回寫(xiě)Cookie的方法sendRedirect(String location)重定向的方法setContentType(String type)設(shè)置瀏覽器打開(kāi)頁(yè)面時(shí)候采用的字符集setCharacterEncoding(String charset)設(shè)置響應(yīng)字符流的緩沖區(qū)的字符集
五、Response對(duì)象的API的代碼演示
(1)設(shè)置狀態(tài)碼
(2)完成重定向1)重定向:是302狀態(tài)碼和Location響應(yīng)頭結(jié)合使用的效果2)實(shí)際開(kāi)發(fā)中可以使用response.sendRedirect("/web01/ResponseDemo2");替換重定向那兩句的寫(xiě)法
(3)完成定時(shí)刷新效果
六漏设、
頁(yè)面定時(shí)跳轉(zhuǎn)的擴(kuò)展
(1)使用JS完成讀秒的效果
(2)在HTML中完成頁(yè)面跳轉(zhuǎn)使用JS完成讀秒效果
(三)Response對(duì)象響應(yīng)的中文亂碼處理
一墨闲、使用字節(jié)流響應(yīng)中文
1、編寫(xiě)代碼
2郑口、向頁(yè)面輸出中文是否會(huì)有亂碼鸳碧?不一定!
3犬性、原因:其實(shí)這個(gè)亂碼的產(chǎn)生瞻离,與中文轉(zhuǎn)成字節(jié)數(shù)組,以及瀏覽器的打開(kāi)
方式(打開(kāi)的時(shí)候采用的默認(rèn)字符集)有關(guān)
4乒裆、解決:將中文轉(zhuǎn)成字節(jié)數(shù)組的時(shí)候套利,和瀏覽器默認(rèn)打開(kāi)的時(shí)候采用的字符集一致即可
二、使用字符流響應(yīng)中文
1鹤耍、編寫(xiě)代碼
2肉迫、向頁(yè)面輸出中文是否會(huì)有亂碼?一定亂碼
3稿黄、原因:字符流是有緩沖區(qū)的昂拂,Response獲得字符流,老外設(shè)計(jì)默認(rèn)的緩沖區(qū)編碼是ISO-8859-1抛猖,這個(gè)字符集不支持中文
4格侯、解決:設(shè)置Response獲得字符流緩沖區(qū)的編碼鼻听,和設(shè)置瀏覽器默認(rèn)打開(kāi)時(shí)采用的字符集一致即可
(四)Request對(duì)象的概述及API的介紹
一、Request
對(duì)象的概述什么是Request對(duì)象
我們開(kāi)發(fā)的軟件都是B/S架構(gòu)的軟件联四,從瀏覽器向服務(wù)器提交一些數(shù)據(jù)時(shí)撑碴,將這些數(shù)據(jù)內(nèi)容進(jìn)行封裝,封裝成一個(gè)請(qǐng)求對(duì)象朝墩,即Request對(duì)象
二醉拓、Request對(duì)象的API
1、獲得客戶端的信息
getMethod()獲得請(qǐng)求的方式getQueryString()
獲得查詢字符串的(即請(qǐng)求路徑后的提交參數(shù)字符串)
getRequestURI()獲得請(qǐng)求路徑的
URI()獲得請(qǐng)求路徑的URLgetRemoteAddr()獲得客戶端的IP地址
2收苏、獲得請(qǐng)求頭的方法getHeader獲得一個(gè)Key對(duì)應(yīng)一個(gè)Value的請(qǐng)求頭getHeaders獲得一個(gè)Key對(duì)應(yīng)多個(gè)Va