天天看點

Java EE中的response

什麼是response

  1. response對象是由伺服器建立的,我們來進行使用.
  2. 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. 輸出資料