筆記
(一)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");替換重定向那兩句的寫法
六、頁面定時跳轉的擴展
(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方式接收中文