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: