2013-02-15 90 views
1

我允許用戶在我的JSP站點中登錄。 但是當他登錄後,他/她被重定向到主頁。在JSP中訪問源頁面路徑

因此,我希望他保持在同一頁面上,而不是重定向到某個特定位置。

所以我想訪問發起登錄/註銷請求的源頁面的鏈接,以便我註銷用戶,然後重定向到同一頁面。我還需要訪問查詢字符串。

我試過request.getRequestURL/URL,但是它們返回的是用來訪問這個servlet的鏈接(即實際上是LoginHendlerServlet鏈接本身)而不是單擊登錄按鈕的頁面的鏈接。

是否有任何現成的API方法來訪問這個舊的鏈接。

+0

嘗試看看http://stackoverflow.com/questions/2648984/httpservletrequest-how-to-obtain-the-referring-url - 是你在找什麼? – Grim 2013-02-15 21:41:16

回答

0

這裏是我如何做到這一點:

使用其截獲需要驗證送達的所有頁面的過濾器。在此過濾器中,如果請求是GET請求,不是AJAX請求,並且用戶未通過身份驗證,請將請求的URL及其查詢字符串存儲在請求屬性中,然後轉發到登錄頁面。

登錄頁面包含一個帶請求URL的隱藏字段,它與登錄表單一起提交。

在登錄servlet/action中,如果請求的URL請求參數已填充,則登錄成功後,重定向到此URL。否則,重定向到登錄頁面。

您也可以使用會話來存儲請求的URL,但我更喜歡保持會話儘可能空。

+0

不錯的主意,在生產環境中是如何完成的? – Mahesha999 2013-02-19 08:32:50

+0

我有一個生產這種過濾器的小應用程序,是的。 – 2013-02-19 10:05:56