response對象
用于響應客戶請求,向用戶端輸出資訊。
1.重定向網頁
- response的sendRedirect()方法可以将網頁重定向到另一個頁面。
- 重定向操作支援将位址重定向到不同的主機上,這一點與轉發不同。在用戶端浏覽器上會得到跳轉的網址,并重新發送請求連結。
- 進行重定向操作後,request中的屬性全部失效,并且開始一個新的request對象。
sendRedirect()方法格式如下:
response.sendRedirect("login.jsp"); //重定向到login.jsp頁面
response.sendRedirect("www.baidu.com"); //重定向到百度網
示例:通過sendRedirect()方法重定向頁面到使用者登入頁面。
(1)建立index.jsp頁面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%response.sendRedirect("login.jsp"); %>>
(2)編寫login.jsp檔案:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<form action="" name="form1" method="post">
使用者名:<input name="name" type="text"><br>
密 碼:<input name="pwd" type="password"><br>
<input type="submit" name="submit" value="送出">
</form>
</body>
</html>
運作執行個體,預設執行index.jsp頁面,在該頁面中又執行了重定向頁面到 login.jsp 的操作,是以浏覽器顯示的是
2.處理HTTP檔案頭
response對象可以設定HTTP響應報頭,下面介紹三個最常見的。
(1)禁用緩存
浏覽器預設情況下會對顯示的内容進行緩存,當使用者在通路此頁面時就可以直接顯示緩存中的内容。
對于一些安全性較高的網站,通常禁用緩存
示例:通過設定HTTP頭方法,禁用緩存
<%
response.setHeader("Cache-Control", "no-store");
response.setDateHeader("Expires", 0);
%>
(2)設定頁面自動重新整理
示例:使網頁每隔十秒自動重新整理一次
<%
response.setHeader("refresh", "10");
%>
(3)定時跳轉網頁
示例:使網頁五秒後自動跳轉到指定的頁面
<%
response.setHeader("refresh","5;URL=login.jsp");
%>
3.設定輸出緩沖
通常伺服器要輸出到用戶端的内容不會直接寫到用戶端,而是先寫到一個輸出緩沖區。
當滿足下面是三種情況之一,就會把緩沖區的内容寫到用戶端。
- JSP頁面的輸出資訊已經全部寫入到了緩沖區
- 緩沖區已滿
- 在JSP頁面中,調用了response對象的flushBuffer()方法或out對象的flush()方法
response對象提供了下表所示的對緩沖區進行配置的方法
方法 | 說明 |
---|---|
flushBuffer() | 強制将緩沖區的内容輸出到用戶端 |
getBufferSize() | 擷取相應所使用的緩沖區的實際大小,若沒有使用緩沖區,則傳回 0 |
setBufferSize(int size) | 設定緩沖區的大小 |
reset() | 清除緩沖區的内容,同時清除狀态碼和報頭 |
isCommitted() | 檢測伺服器端是否已經把資料寫入到了用戶端 |
示例:設定緩沖區大小為32KB。
<%
response.setBufferSize(32);
%>
補充:如果緩沖區的大小設定為0KB,則表示不緩沖。