Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JSP中访问源页面路径_Java_Jsp_Jakarta Ee - Fatal编程技术网

Java 在JSP中访问源页面路径

Java 在JSP中访问源页面路径,java,jsp,jakarta-ee,Java,Jsp,Jakarta Ee,我允许用户登录我的JSP站点。 但当他/她登录时,他/她会被重定向到主页 所以我希望他保持在同一页上,而不是被重定向到某个特定的位置 因此,我想访问发起登录/注销请求的源页面的链接,以便注销用户,然后重定向到同一页面。我还需要访问查询字符串 我尝试了request.getRequestURL/URL,但它们返回用于访问此servlet的链接,即实际登录HandlerServlet链接本身,而不是单击登录按钮的页面的链接 有没有现成的API方法可以访问这一旧链接。我是这样做的: 使用一个过滤器,拦

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

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

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

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

有没有现成的API方法可以访问这一旧链接。

我是这样做的:

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

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

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


您也可以使用会话来存储请求URL,但我更希望会话尽可能保持为空。

试试看-这就是您要找的吗?我在productio中有一个小应用程序,带有这样的过滤器,是的。