从webfilter重定向到与被调用URL无关的同一页面

时间:2015-08-04 11:06:27

标签: jsf redirect servlet-filters

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

我的问题是,重定向会重定向到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.jsf”,但是当调用root时它不起作用。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

重定向到域相对URL。换句话说,始终使用/启动重定向网址,包括上下文路径。如果您真正关注的是上下文路径/App的动态性,请按HttpServletRequest#getContextPath()以编程方式获取。

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

请注意,filter example已经在your previous question中为您提供了enter image description here