Java doFilter()不适用于页面访问限制

Java doFilter()不适用于页面访问限制,java,jsf,login,Java,Jsf,Login,我使用BalusC代码实现了一个filter类 @WebFilter("/Manager/faces/*") public class AuthorizationFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {

我使用BalusC代码实现了一个filter类

@WebFilter("/Manager/faces/*")
public class AuthorizationFilter implements Filter {

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {    
    HttpServletRequest req = (HttpServletRequest) request;
    UserSession auth = (UserSession) req.getSession().getAttribute("UserSession");

    if (auth != null && auth.isLoggedIn()) {
        chain.doFilter(request, response);
    } else {
        HttpServletResponse res = (HttpServletResponse) response;
        res.sendRedirect(req.getContextPath() + "/index.xhtml");
    }
}
我有一个包含login()、logout()和isLoggedIn()方法的UserSession类,以及一个用户字段,该字段在isLoggedIn()中检查是否为null

第一:我的代码正确吗

UserSession auth = (UserSession) req.getSession().getAttribute("UserSession");
我的索引页是:

/Manager/faces/index.xhtml

当我登录时,我可以访问我的所有页面,所以它不起作用


dofilter方法中的system.out.println也不会显示。我必须在某个地方调用doFilter()。

也许@WebFilter没有被选中?你们有其他的过滤器吗?这些有用吗?你能试着把它显式地放在web.xml中吗?我只是试着用web.xml,它不起作用。我怀疑我的getAttribute()方法,我必须输入哪个参数?“甚至dofilter方法中的system.out.println都不显示。”你把它放在哪里了?如果从未调用过滤器,这是要解决的第一个问题。我不会在代码中调用doFilter()方法。我想它是自动调用的,不是吗?我不知道为什么没有调用doFilter()方法。(但是init()方法调用得很好)