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

JSP forward 動作實現頁面轉發與參數傳遞實戰

     編輯:關於JSP

<jsp:forward> 在伺服器端將請求轉發至另一資源(JSP/Servlet/HTML),瀏覽器 URL 不變,屬於一次請求鏈。語法支援靜態路徑或動態表達式,並可附加參數。

基本語法

<jsp:forward page="{relativeURL | <%= expr %>}" />
<jsp:forward page="{relativeURL | <%= expr %>}">
    <jsp:param name="paramName" value="{paramValue | <%= expr %>}" />+
</jsp:forward>

實戰範例:無參數轉發

test1.jsp

<%@ page contentType="text/html;charset=UTF-8" %>
<html><body>
<jsp:forward page="/test2.jsp" />
</body></html>

test2.jsp

<%@ page contentType="text/html;charset=UTF-8" %>
<html><body>
<% out.println("這是 test2.jsp 產生的輸出"); %>
</body></html>

瀏覽器訪問 test1.jsp 直接顯示 test2.jsp 的輸出,地址欄仍為 test1.jsp。

實戰範例:帶參數轉發

test3.jsp

<jsp:forward page="/test4.jsp">
  <jsp:param name="name" value="powerman" />
  <jsp:param name="address" value="北京西大街188號" />
</jsp:forward>

test4.jsp

<%@ page contentType="text/html;charset=UTF-8" %>
<html><body>
<%
  out.println("姓名:" + request.getParameter("name") + "<br>");
  out.println("地址:" + request.getParameter("address") + "<br>");
%>
</body></html>

輸出:

姓名:powerman
地址:北京西大街188號

關鍵注意事項

  • 緩衝區限制:若 out 已輸出內容且緩衝未刷新,呼叫 forward 會拋 IllegalStateException。解決:頁面開頭設 <%@ page buffer="none" %> 或確保前無輸出。
  • 請求屬性 vs 參數:<jsp:param> 實際是向 request.setAttribute() 放入臨時屬性,目標頁用 request.getParameter() 即可取得,等同表單提交。
  • 相對路徑解析:以 / 開頭相對 Web 應用根目錄;否則相對當前 JSP 目錄。
  • forward vs sendRedirect:forward 同一請求、共享 request/response,地址欄不變;sendRedirect 客戶端重導向、新請求、地址欄改變。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved