JavaWeb JSP內置對象之response對象

3、response對象

response對象與request對象正好相反,所包含的是服務器向客戶端作出的應答信息。response被包裝成HttpServletResponse接口,它封裝了Jsp的響應,被髮送到客戶端以響應客戶端請求。因輸出流是緩衝的,所以可以設置Http狀態碼和response頭。
response對象常用方法如下表所示。

方法名稱 說明
addCookie(Cookie cookie) 添加一個Cookie對象,用來保存客戶端用戶信息。用request對象的getCookies()方法可以獲得這個Cookie
setContentType(String contentType) 設置響應MIME類型。例如:response. setContentType(“application/msword;charset=GB2312”)
setCharacterEncoding(String charset) 設置響應使用字符編碼格式
setHeader(String name,String value) 設定指定名字的HTTP文件頭的值,如該值存在,會被新值覆蓋。例如:在線聊天室,當refresh值爲“5”時,就表示頁面每5秒就要刷新一次。response.setHeader(“refresh”,”5”)
sendRedirect(URL) 將用戶重定向到一個不同的頁面URL。調用此方法,終止以前的應答,更改瀏覽器內容爲一個新的的URL。注意:使用sendRedirect重定向是沒辦法通過request.setAttribute來傳遞對象到另外一個頁面的。
String encodeURL(String url) 將url予以編碼,回傳包含sessionId的URL。用response.sendRedirect(response.encodeURL(url))的好處就是他能將用戶的session追加到網址的末尾,也就是能夠保證用戶在不同的頁面時的session對象是一致的. 這樣做的目的是防止某些瀏覽器不支持或禁用了COOKIE導致session跟蹤失敗
String encodeRedirectURL(String url) 對於使用sendRedirect()方法的url進行編碼

實例代碼1:

<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.text.DateFormat"%>
<%@ page language="java" contentType="text/html; charset=GBK"%>
<html>
<body>
	<p>response自動刷新時間</p>
	當前時間爲:
	<%
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		response.setHeader("Refresh", "1");
		out.println("" + df.format(new java.util.Date()));
	%>
</body>
</html>

程序說明1:

response.setHeader(“Refresh”,“1”),則1秒會重新加載頁面本身。通過該方法可以設置頁面自動刷新時間間隔。

運行結果1:

在這裏插入圖片描述

實例代碼2:

<%@ page pageEncoding="GBK"%>
<html>
<body>
	<%
		String address = request.getParameter("where");
		if (address != null) {
			if (address.equals("qh"))
				response.sendRedirect("https://www.tsinghua.edu.cn/");
			else if (address.equals("bd"))
				response.sendRedirect("https://www.pku.edu.cn/");
		}
	%>
	<b>請選擇跳轉的頁面:</b>
	<br>
	<form action="third_example3.jsp" method="GET">
		<select name="where">
			<option value="qh">跳轉至清華大學
			<option value="bd">跳轉至北京大學
		</select>
		<input type="submit" value="go" name="submit">
	</form>
</body>
</html>

程序說明2:

if(address.equals(“bd”))
response.sendRedirect(“http://www.pku.edu.cn”);
如果address值爲“bd”,將用戶重定向到http://www.pku.edu.cn。這時瀏覽器地址欄也是http://www.pku.edu.cn。
注意:使用jsp:forward,在轉到新的頁面後,原來頁面request參數是可用的,同時在轉到新的頁面後,新頁面地址不會在地址欄中顯示出來。而使用sendRedirect方法,重定向後在瀏覽器地址欄會出現重定向後頁面URL。

運行結果2:

在這裏插入圖片描述
在這裏插入圖片描述

發佈了70 篇原創文章 · 獲贊 14 · 訪問量 9742
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章