0

我的代码中有一个具有以下设置的过滤器。我映射了值请求中的所有内容

@WebFilter(value="/*",  dispatcherTypes={DispatcherType.REQUEST, DispatcherType.FORWARD})
public class MyFilter implements Filter {
    public void init(FilterConfig fConfig) throws ServletException {
        logger.info("Inside init of MyFilter");
    }
}

我的 web.xml 配置是这样声明的

<web-app 
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

当部署到 Glassfish 3.1.2 时,我在启动期间检查了服务器日志,但甚至没有调用我的 init 方法。也没有调用错误或异常。

任何人都知道如何排除故障?

4

1 回答 1

2

根据教程

使用 @WebFilter 注释在 Web 应用程序中定义过滤器。这个注解是在一个类上指定的并且包含关于被声明的过滤器的元数据。带注释的过滤器必须至少指定一种 URL 模式。这是通过使用注释上的 urlPatterns 或 value 属性来完成的。所有其他属性都是可选的,具有默认设置。当注解的唯一属性是 URL 模式时,使用 value 属性;当还使用其他属性时,使用 urlPatterns 属性。

由于您的注释具有更多属性,您应该使用“urlPatterns”属性而不是“value”

于 2012-12-10T10:06:39.450 回答