首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

JSP response 內置對象詳解:響應控制、頭信息設置與自動跳轉實戰

     編輯:關於JSP

response 封裝服務器向客戶端的響應信息,核心職責是輸出內容、設置 HTTP 頭、控制瀏覽器行為。本文重點講解頭信息操作、頁面刷新跳轉、輸出流管理。

response 對象本質

  • 類型:javax.servlet.http.HttpServletResponse 實例
  • 繼承體系:ServletResponse → HttpServletResponse(專用於 HTTP)

核心方法分類

response 常用方法表

1. 設置響應頭信息

  • setHeader(String name, String value):設置單值頭。
  • addHeader(String name, String value):追加多值頭。
  • setContentType(String type):設置 MIME 類型與字符集(必須在獲取輸出流前調用)。
  • setCharacterEncoding(String charset):設置響應字符編碼。

2. 實戰:自動刷新與定時跳轉

利用 Refresh 頭實現:

<!-- Response_01.jsp: 每 2 秒自動刷新 -->
<% response.setHeader("refresh", "2"); %>
<h5>您訪問了 <%=count++%> 次</h5>

<!-- Response_02.jsp: 3 秒後跳轉到指定頁面 -->
<h3>3 秒後跳轉... <a href="51cto.html">點擊這裡</a></h3>
<% response.setHeader("refresh", "3;URL=51cto.html"); %>

語法:refresh: 秒數 [;URL=目標地址]。無 URL 則刷新當前頁。

3. 禁止緩存頭(動態頁面必備)

response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);

4. 狀態碼控制

  • sendError(int sc, String msg):發送錯誤狀態(404、500 等),容器顯示錯誤頁。
  • setStatus(int sc):設置狀態碼(如 302 重定向底層實現)。

5. 輸出流管理

  • PrintWriter getWriter():字符輸出流(文本/HTML)。
  • ServletOutputStream getOutputStream():字節輸出流(圖片/文件下載)。
  • 互斥原則:同一響應中只能調用二者之一,否則拋出 IllegalStateException。

最佳實踐:文件下載響應模板

response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
ServletOutputStream out = response.getOutputStream();
// 寫入文件字節流
out.close();
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved