我尝试使用泽西的简单过滤器,但没有运气。我的过滤器:
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
获取日志。
我做错了什么?
答案 0 :(得分:0)
我怀疑您通过Jersey提供请求的JAX-RS映射可能是/services/*
。因此,您尝试过滤未配置Jersey以处理的请求。 /*
将匹配更多的网址。