2012-05-17 12 views
2

我想,所以我这样做是为了过滤到我的球衣的servlet的所有请求的请求的应用程序引擎,开发者控制台:如何过滤所有除在web.xml

<filter-mapping> 
    <filter-name>jersey</filter-name> 
    <url-pattern>*</url-pattern> 
</filter-mapping> 

不幸的是,这有醒目的副作用开发控制台(http:// localhost:8888/_ah/admin)

有没有一种方法可以从过滤器中排除匹配“/ _ah/*”的路径?

或者更好的方式来实现同样的事情?

+1

有一个看看这个:http://stackoverflow.com/questions/3125296/can-i -exclude-一些混凝土的URL-从-URL图案内部过滤器映射 – adarshr

回答

4

感谢@adarshr的建议,我开始考虑扩展Jersey过滤器servlet,以便我可以跳过某些路径。那时我意识到它已经支持作为init参数忽略的路径。

<init-param> 
    <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name> 
    <param-value>/(js|css|(WEB-INF/jsp)|_ah)/.*</param-value> 
</init-param> 

(我已经使用,即使它从什么地方的代码粘贴没有看完后!)

1

我会建议有一个servlet,你可以用它来配置所有的过滤器映射。因此,servlet将处理所有查询并相应地重新路由它们,因为web.xml不允许正则表达式映射。

我们使用guiceServlet从谷歌吉斯做同样的事情:

然后在configureServlets我们做到以下几点:

serveRegex("/(?!_ah).*").with(JerseyGateway.class); 

有许多关于该主题的,你可以看看here建议。

相关问题