一岂昭、什么是Response
? ? 我們開發(fā)的軟件是B/S結(jié)構(gòu)的軟件以现,是可以通過瀏覽器訪問服務(wù)器的軟件。從瀏覽器輸入一個地址约啊,訪問服務(wù)器的這個過程稱為請求邑遏。服務(wù)器接收到請求,需要進行處理恰矩,處理以后记盒,還需要將處理結(jié)果發(fā)回瀏覽器端顯示,這個過程稱為響應(yīng)
二外傅、Response關(guān)于響應(yīng)頭的方法
?? ?setDateHeader(String name, long date)
?? ?setHeader(String name, String value)
?? ?setIntHeader(String name, int value)
? ? set開頭的方法用于設(shè)置:針對一個key對應(yīng)一個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開頭的方法用于追加:針對一個key對應(yīng)多個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() 將二進制字節(jié)發(fā)送到客戶端
?? ?getWriter() 將字符文本發(fā)送到客戶端
? ? 用于向瀏覽器端輸出內(nèi)容
四、Response其他的API
? ??addCookie(Cookie cookie)
? ??服務(wù)器向瀏覽器回寫Cookie的方法
? ??sendRedirect(String location)
? ??重定向的方法
?? ?setContentType(String type)
?? ?設(shè)置瀏覽器打開頁面時候采用的字符集
?? ?setCharacterEncoding(String charset)
?? ?設(shè)置響應(yīng)字符流的緩沖區(qū)的字符集
五萎胰、使用字節(jié)流響應(yīng)中文
1碾盟、編寫代碼
2、向頁面輸出中文是否會有亂碼技竟?不一定冰肴!
3、原因:其實這個亂碼的產(chǎn)生,與中文轉(zhuǎn)成字節(jié)數(shù)組熙尉,以及瀏覽器的打開方式(打開的時候采用的默認(rèn)字符集)有關(guān)
4联逻、解決:將中文轉(zhuǎn)成字節(jié)數(shù)組的時候,和瀏覽器默認(rèn)打開的時候采用的字符集一致即可
六检痰、使用字符流響應(yīng)中文
1包归、編寫代碼
2、向頁面輸出中文是否會有亂碼攀细?一定亂碼
3、原因:字符流是有緩沖區(qū)的爱态,Response獲得字符流谭贪,老外設(shè)計默認(rèn)的緩沖區(qū)編碼是ISO-8859-1,這個字符集不支持中文
4锦担、解決:設(shè)置Response獲得字符流緩沖區(qū)的編碼俭识,和設(shè)置瀏覽器默認(rèn)打開時采用的字符集一致即可
七、Request對象的概述
什么是Request對象
我們開發(fā)的軟件都是B/S架構(gòu)的軟件洞渔,從瀏覽器向服務(wù)器提交一些數(shù)據(jù)時套媚,將這些數(shù)據(jù)內(nèi)容進行封裝,封裝成一個請求對象磁椒,即Request對象
八堤瘤、Request對象的API
1、獲得客戶端的信息
getMethod()? ? 獲得請求的方式
getQueryString()? ? 獲得查詢字符串的(即請求路徑后的提交參數(shù)字符串)
getRequestURI()? ? 獲得請求路徑的URI
getRequestURL()?? ?獲得請求路徑的URL
getRemoteAddr()? ? 獲得客戶端的IP地址
2浆熔、獲得請求頭的方法
getHeader? ? 獲得一個Key對應(yīng)一個Value的請求頭
getHeaders? ? 獲得一個Key對應(yīng)多個Value的請求頭
3本辐、獲得請求參數(shù)的方法
getParameter? ? 獲得提交的參數(shù)(一個name對應(yīng)一個value)
getParameterValues? ? 獲得提交的參數(shù)(一個name對應(yīng)多個value)
getParameterMap()? ? 獲得提交的參數(shù),將提交的參數(shù)名稱和對應(yīng)的值存入到一個Map集合中
4医增、Request作為域?qū)ο蟠嫒?shù)據(jù)的方法
setAttribute? ? 向Request域中存數(shù)據(jù)
getAttribute? ? 從Request域中取數(shù)據(jù)
removeAttribute? ? 從Request域中移除數(shù)據(jù)