天天看點

JSP内置對象 response對象response對象 1.重定向網頁2.處理HTTP檔案頭 3.設定輸出緩沖

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>
		密&nbsp;&nbsp;&nbsp;碼:<input name="pwd" type="password"><br>
		<input type="submit" name="submit" value="送出">
	</form>
</body>
</html>
           

運作執行個體,預設執行index.jsp頁面,在該頁面中又執行了重定向頁面到 login.jsp 的操作,是以浏覽器顯示的是

JSP内置對象 response對象response對象 1.重定向網頁2.處理HTTP檔案頭 3.設定輸出緩沖

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,則表示不緩沖。