什麼是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. 輸出數據