![](/img/trans.png)
[英]How to redirect the response of a servlet into the same jsp page from where we got the request
[英]Returning to page from where redirect request is made
有很多相關問題對此有很多答案,但我想知道什么是最好的和建議的方法。
問題很簡單。我想在不滿足條件時從一個頁面重定向到另一個頁面,並且在重定向頁面中此條件變為真后,返回到在 php 或 jsp 頁面中請求重定向的同一頁面
更相關的例子是:當用戶想從網站上購買產品時,當他選擇產品並想要付款時,網站會檢查用戶是否已登錄該網站。 如果沒有,則進入登錄頁面,登錄后直接將用戶帶到支付頁面,而不是通常登錄頁面進入的某個主頁。
有一些選項,例如存儲會話並將請求的 url 存儲在會話變量中,然后使用它返回頁面。
但我的問題是找到最合適的標准。 詳細的答案表示贊賞。 提前致謝。
你可以這樣做:
首先,您需要動態獲取當前頁面,因此在 PHP 中我們有$_SERVER
來完成這項工作,因此我們可以使用以下代碼來獲取我們當前的 PHP 頁面名稱:
$redirect_page = basename($_SERVER['PHP_SELF']); /* Returns The Current PHP File Name */
注意:使用上面的代碼,您將只能獲得當前的 PHP 文件名,而不是完整的 URL。
然后我們需要使用一些可以存儲值的東西,以便能夠在下一個重定向頁面上使用它,所以我們在 PHP 中有COOKIES & SESSIONS來完成這項工作,在這里我將與您分享這兩種方法。由於我們已經獲得了頁面名稱,因此我們需要存儲它。
我們可以像這樣創建一個 cookie:
setcookie("redirect_page", $redirect_page, time()+20);
如您所見,我們在此處創建了一個 cookie,並將重定向頁面名稱存儲在其中。 現在,當您使用header
以這種方式重定向到另一個時:
header("Location: 2nd_page.php");
在第二頁上,您可以像這樣將頁面重定向到您被重定向的第一頁:
if ($value1 != $value2) {
$redirect_back = $_COOKIE['redirect_page'];
header("Location: $redirect_back");
}
我們可以這樣創建一個會話:
$_SESSION['redirect_page'] = $redirect_page;
如您所見,我們在此處創建了一個 cookie,並將重定向頁面名稱存儲在其中。 現在,當您使用header
以這種方式重定向到另一個時:
header("Location: 2nd_page.php");
在第二頁上,您可以像這樣將頁面重定向到您被重定向的第一頁:
if ($value1 != $value2) {
$redirect_back = $_SESSION['redirect_page'];
header("Location: $redirect_back");
}
注意:請記住在嘗試訪問$_SESSION
數組之前以及將任何輸出發送到瀏覽器之前在這兩個頁面上運行session_start()
語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.