使用google guice,我想让所有服务器请求(/*)流到我的servlet文件除了静态内容。如果需要,我很擅长将静态内容放入/static文件夹。我只需要挑选到根服务器的servlet请求。
下面是有效的代码://Holds @GET @POST, etc
bind(MyTemplateResource1.class);
bind(MyTemplateResource2.class);
// this serves MyTemplateResource1..2... and any other servlet files
serve("/server/*").with(GuiceContainer.class);
// this serves the static content
serveRegex("/(images|css|html)/.*").with(GuiceContainer.class);
然而,如果我取出/server,我的静态内容也被路由到MyTemplateResource。例如:
serve("/*").with(GuiceContainer.class);
当Servlet内容路由到一个或多个资源文件时,即使Servlet url可以从根目录开始,允许所有静态内容自由流动的最好方法是什么? 我有一个类似的问题(我实际上是谷歌搜索一个正则表达式掩码,发现你的问题),所以基本上:
- 创建参数映射
- 为WebPageContentRegex添加一个引用,并添加静态文件regexp
- 确保你使用过滤器而不是服务,并传递地图
bind(HostController.class, LoginController.class, ConfirmInviteController.class, LogoutController.class, ResetPasswordController.class, ChangePasswordController.class);
Map<String, String> initParams = new TreeMap<String, String>();
initParams.put("com.sun.jersey.config.property.WebPageContentRegex", "/.*\.(jpg|ico|png|gif|html|id|txt|css|js)");
filter("/*").through(GuiceContainer.class, initParams);
希望有帮助