我允许用户登录我的JSP站点。 但是当他登录后,他/她会被重定向到主页。
所以我希望他留在同一页面,而不是被重定向到某个特定位置。
所以我想访问发起登录/注销请求的源页面的链接,这样我将注销用户然后重定向到同一页面。我还需要访问查询字符串。
我尝试了request.getRequestURL / URL,但它们返回用于访问此servlet的链接(即实际上是LoginHendlerServlet链接本身),而不是单击登录按钮的页面的链接。
是否有任何现成的API方法可以访问这个较旧的链接。
答案 0 :(得分:0)
我是这样做的:
使用过滤器拦截需要进行身份验证的所有页面。在此过滤器中,如果请求是GET请求,不是AJAX请求,并且用户未经过身份验证,请将请求的URL及其查询字符串存储在请求属性中,然后转发到登录页面。
登录页面包含一个带有请求URL的隐藏字段,该字段随登录表单一起提交。
在登录servlet / action中,如果填充了请求的URL请求参数,则登录成功后,将重定向到此URL。否则,重定向到登录页面。
您也可以使用会话来存储请求网址,但我更喜欢将会话保持为空。