Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在web.xml中过滤除应用程序引擎开发控制台之外的所有请求_Java_Google App Engine_Jersey_Servlet Filters_Web.xml - Fatal编程技术网

Java 如何在web.xml中过滤除应用程序引擎开发控制台之外的所有请求

Java 如何在web.xml中过滤除应用程序引擎开发控制台之外的所有请求,java,google-app-engine,jersey,servlet-filters,web.xml,Java,Google App Engine,Jersey,Servlet Filters,Web.xml,我想筛选到jersey servlet的所有请求,因此我执行以下操作: <filter-mapping> <filter-name>jersey</filter-name> <url-pattern>*</url-pattern> </filter-mapping> 运动衫 * 不幸的是,这有捕获开发人员控制台的副作用(http://localhost:8888/_ah/admin) 有没有办法从筛选器中排

我想筛选到jersey servlet的所有请求,因此我执行以下操作:

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

运动衫
*
不幸的是,这有捕获开发人员控制台的副作用(http://localhost:8888/_ah/admin)

有没有办法从筛选器中排除匹配“/\u ah/*”的路径


或者可能是实现相同功能的更好方法?

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

我们使用Google Guice的guiceServlet做同样的事情:

然后在
configureServlets
中,我们执行以下操作:

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

关于这个主题,您可以看一些建议。

感谢@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>

com.sun.jersey.config.property.WebPageContentRegex
/(js | css |(WEB-INF/jsp)| | uAH)/*
(我甚至在没有阅读的情况下从某个地方粘贴代码后就已经在使用它了!)

看看这个: