一、什么是Response 我們開發(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)頭的方法setDate
? ? ? Header(String name, long date)setHeader(String
? ? ? ? name, String value)setIntHeader(String name, int
? ? ? value)set開頭的方法用于設(shè)置:針對(duì)一個(gè)key對(duì)應(yīng)一個(gè)
? ? ? value的情況舉例:原頭信息Content-Type:text/html
? ? ? 調(diào)用setHeader("Content-Type","text/html");
? ? ? 最終結(jié)果:Content-Type:text/html
? ? addDateHeader(String name, long date)
? ? addHeader(String name, String value)
? ? addIntHeader(String name, int value)
? ? add開頭的方法用于追加:針對(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覽器回寫Cookie的方法sendRedirect(String location)
? ? 重定向的方法setContentType(String type)設(shè)置瀏覽器打開頁(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í)際開發(fā)中可以使用response.sendRedirect("/web01/ResponseDemo2");
? ? 替換重定向那兩句的寫法
一、使用字節(jié)流響應(yīng)中文
? ? 1、編寫代碼
? ? ? 2、向頁(yè)面輸出中文是否會(huì)有亂碼?不一定!
? ? ? 3、原因:其實(shí)這個(gè)亂碼的產(chǎn)生,與中文轉(zhuǎn)成字節(jié)數(shù)組,以及瀏覽器的打開方式(打開的時(shí)候采用的默認(rèn)字符集)有關(guān)
? ? 4、解決:將中文轉(zhuǎn)成字節(jié)數(shù)組的時(shí)候,和瀏覽器默認(rèn)打開的時(shí)候采用的字符集一致即可
? ? 二、使用字符流響應(yīng)中文
? ? ? ? 1、編寫代碼
? ? ? ? 2、向頁(yè)面輸出中文是否會(huì)有亂碼?一定亂碼
? ? ? ? 3、原因:字符流是有緩沖區(qū)的,Response獲得字符流,老外設(shè)計(jì)默認(rèn)的緩沖區(qū)編碼是ISO-8859-1,這個(gè)字符集不支持中文
? ? ? ? 4、解決:設(shè)置Response獲得字符流緩沖區(qū)的編碼,和設(shè)置瀏覽器默認(rèn)打開時(shí)采用的字符集一致即可
(