gpt4 book ai didi

java - WebFilter urlPattern 不工作

转载 作者:行者123 更新时间:2023-11-30 11:33:12 26 4
gpt4 key购买 nike

我正在尝试将 WebFilter 与 JSF 2 结合使用,但我的过滤器无法正常工作。无法识别 urlPattern。

我的过滤器类:

@WebFilter(urlPatterns = {"/rws/*"})  
public class AuthorizationFilter implements Filter {

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession(true);
Object o = session.getAttribute("user");
HttpServletResponse res = (HttpServletResponse) response;

if(o == null)
res.sendRedirect(req.getContextPath() + "/login.xhtml");
else
chain.doFilter(request, response);
}

@Override
public void init(FilterConfig filterConfig) throws ServletException {

}

@Override
public void destroy() {
}
}

在我的结构中,我想保护 rws 文件夹中的所有页面,但我无法配置过滤器。

我试过了@WebFilter("/rws/*")@WebFilter("/faces/rws/*")

我的过滤器从未被执行!!

我注意到当我浏览页面时 url 没有改变。例如,用户打开index.xhtml 执行登录,然后重定向到页面loginOk.xhtml。LoginOk.xhtml 页面具有指向文件夹 rws 中页面的链接。

当我单击链接时,url 没有改变,即,我在文件夹页面 rws 中浏览,但浏览器中的 url 保持不变 ( http://jsftest.com:8080/TestePrimeFaces/faces/loginOK.xhtml )。是这个问题吗?

用了一个commandLink作为链接,不知道合不合适。有谁知道问题出在哪里?

最佳答案

像这样添加“@Component”。

@Component
@WebFilter(urlPatterns = {"/rws/*"})
public class AuthorizationFilter implements Filter { ...

关于java - WebFilter urlPattern 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16192708/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com