从独立于被调用URL的webfilter重定向到相同的页面



我已经构建了一个登录Webfilter,如果会话未经过身份验证,则重定向到loginpage

我的问题是,重定向重定向到web服务器上同一文件夹内的页面,当被调用的页面不在根文件夹中时失败。

webfilter重定向到"./login.jsf"例子:如果我调用"www.application.ch/App"它可以工作,我被重定向到"www.application.ch/App/login.jsf"

但是当我调用"www.application.ch/App/pages/page.jsf"时,它将我重定向到"www.application.ch/App/pages/login.jsf"

当然,我可以直接将重定向设置为"../login"。但是当调用根目录时它不起作用。

如何解决这个问题?

重定向到域名相对URL。换句话说,总是以/开始重定向URL,包括上下文路径。如果您实际关心的是上下文路径/App的动态性,只需通过HttpServletRequest#getContextPath()编程地获得它。

response.sendRedirect(request.getContextPath() + "/login.jsf");

请注意,我在上一个问题中给你的过滤器示例已经涵盖了这一点。

相关内容

  • 没有找到相关文章

最新更新