为什么我在泽西岛的简单过滤器不起作用?

时间:2013-08-10 13:57:48

标签: java http jersey servlet-filters

我尝试使用泽西的简单过滤器,但没有运气。我的过滤器:

public class JerseyHelloFilter implements ContainerResponseFilter {

    @Override
    public ContainerResponse filter(ContainerRequest creq, ContainerResponse cresp) {
        System.out.println("JerseyHelloFilter : filter");
        return cresp;
    }
}

我的web.xml:

<servlet>
    <servlet-name>Log Filter</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
     <init-param>
        <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
        <param-value>my.package.JerseyHelloFilter</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>Log Filter</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

我的JSP页面:/my.page/index.jsp
我的JAX-RS服务:/my.page/resources/*

使用上面的代码,我希望每次调用我的网站时都会执行filter方法并返回我的页面。但是当我尝试在浏览器中访问我的index.jsp欢迎文件时,我从过滤器和HTTP Status 404 - Not Found获取日志。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

我怀疑您通过Jersey提供请求的JAX-RS映射可能是/services/*。因此,您尝试过滤未配置Jersey以处理的请求。 /*将匹配更多的网址。