使用google guice,我希望所有服务器请求(/ *)都流向我的servlet文件,除了静态内容。如果需要,我很擅长将静态内容放入/ static文件夹。我只需要向root用户提取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。 e.g:
serve("/*").with(GuiceContainer.class);
在将Servlet内容路由到一个或多个Resource文件时允许所有静态内容自由流动的最佳方法是什么,即使servlet url可以从根目录开始?
答案 0 :(得分:0)
我遇到了类似的问题(我实际上是谷歌搜索正则表达式面具并找到了你的问题),基本上是这样的:
在代码中,它可以这样工作:
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);
希望有所帮助