什麼是response
- response對象是由伺服器建立的,我們來進行使用.
- response對象是用來設定響應消息的
功能: 設定響應消息
1. 設定響應行
1. 格式: HTTP/1.1 200 ok
2. 設定狀态碼: setStatus(int sc);
2. 設定響應頭: setHeader(String name, String value);
3. 設定響應體:
* 使用步驟:
1. 擷取輸出流
* 字元輸出流: PrintWriter getWriter()
* 位元組輸出流: ServletOutputStream getOutputStream()
2. 使用輸出流,将資料輸出到用戶端浏覽器
4. 重定向
方法一:
* 步驟:
1. 設定狀态碼為302
* response.setStatus(302)
2. 設定響應頭: redirect
* response.setHeader("域名(ip位址)", "重定向的位址(路徑)");
* 自己測試的話可以用localhost
方法二:
* 這種比較友善
* response.sendRedirect("重定向的位址(路徑)");
* 路徑寫法:
1. 路徑的分類
1. 相對路徑: 通過相對路徑不可以确定唯一資源
* 如: ./index.html
* 不以/開頭, 以.開頭
* 規則: 找到通路的目前資源和目标資源之間的相對位置關系
* ./目前目錄
* ../後退一級目錄
2. 絕對路徑: 通過絕對路徑可以确定唯一資源
* 如: http://localhost/text/responseDemo2
* 以斜杠開頭的路徑
* 規則: 判斷定義的路徑是給誰用的? 判斷請求将來從哪兒發出
* 給用戶端浏覽器使用: 需要假虛拟目錄(項目的通路路徑)
* 建議虛拟目錄動态擷取: request.getContextPath()
* <a>, <form>, 重定向....
* 給伺服器使用: 不需要加虛拟目錄
* 轉發路徑
3. 伺服器輸出位元組資料到浏覽器
* 步驟:
1. 擷取位元組輸出流
2. 輸出資料
伺服器輸出字元資料到浏覽器
* 步驟:
1. 擷取字元輸出流
2. 輸出資料
* 注意:
* 亂碼問題:
1. PrintWriter pw = response.getWriter(); 擷取流的預設編碼是ISO-8859-1
2. 設定該流的編碼
3. 告訴浏覽器響應體使用的編碼
//簡單形式, 設定編碼,是在擷取流之前設定
response.setContentType("text/html;charser=utf-8");
伺服器輸出位元組資料到浏覽器
* 步驟:
1. 擷取位元組輸出流
2. 輸出資料