JSP 頁面跳轉按執行位置分為客戶端跳轉(瀏覽器發起新請求)與服務端跳轉(伺服器內部轉發)兩大類,共五種主流方式,各有適用場景。
最基礎方式,通過 <a href="target.jsp"> 實現,適合靜態導航,URL 可見,支持書籤與歷史記錄。
提供動態控制能力:
window.location.href = "url":標準跳轉,保留歷史window.location.replace("url"):替換當前歷史,無法回退history.go(-1)/back()/forward():歷史導航document.form.submit() 攜帶數據跳轉<form action="process.jsp" method="POST">
<input name="username" type="text">
<input type="submit" value="提交">
</form>
適用於需攜帶用戶輸入數據的場景,支持 GET/POST 協議。
核心方法:response.sendRedirect("url")
return 防止後續代碼干擾替代方案:response.setHeader("Refresh", "秒數;url=目標") 實現延遲跳轉。
RequestDispatcher rd = request.getRequestDispatcher("/target.jsp");
rd.forward(request, response);
| 維度 | sendRedirect | forward |
|---|---|---|
| 執行時機 | 代碼執行完後 | 立即執行 |
| URL 變化 | 改變 | 不變 |
| 請求對象 | 新請求 | 共享 |
| 跳轉範圍 | 跨域可行 | 僅內部 |
| 性能 | 兩次請求 | 一次請求 |