1

我允许用户登录我的 JSP 站点。但是当他登录时,他/她会被重定向到主页。

所以我希望他保持在同一页面上,而不是被重定向到某个特定位置。

所以我想访问发起登录/注销请求的源页面的链接,以便我将注销用户然后重定向到同一页面。我还需要访问查询字符串。

我尝试了 request.getRequestURL/URL,但它们返回用于访问此 servlet 的链接(即实际上是 LoginHendlerServlet 链接本身)而不是单击登录按钮的页面的链接。

是否有任何现成的 API 方法可以访问这个较旧的链接。

4

1 回答 1

0

这是我的做法:

使用过滤器拦截所有需要提供身份验证的页面。在此过滤器中,如果请求是 GET 请求,不是 AJAX 请求,并且用户未经过身份验证,则将请求的 URL 及其查询字符串存储在请求属性中,然后转发到登录页面。

登录页面包含一个带有请求 URL 的隐藏字段,该字段与登录表单一起提交。

在登录 servlet/action 中,如果填充了请求的 URL 请求参数,一旦登录成功,重定向到该 URL。否则,重定向到登录页面。

您也可以使用会话来存储请求 URL,但我更喜欢将会话保持为空。

于 2013-02-15T23:17:12.997 回答