Java 灰熊&x2B;静态内容+;Servlet过滤器

Java 灰熊&x2B;静态内容+;Servlet过滤器,java,servlets,servlet-filters,grizzly,Java,Servlets,Servlet Filters,Grizzly,我可以让Grizzly提供静态内容 我可以创建servlet过滤器来过滤命名的servlet 但是我不能让servlet过滤器过滤静态内容。我该怎么做 以下是我目前掌握的代码: WebappContext webappContext = new WebappContext("grizzly web context", ""); FilterRegistration authFilterReg = webappContext.addFilter("Authentication Filter", o

我可以让Grizzly提供静态内容

我可以创建servlet过滤器来过滤命名的servlet

但是我不能让servlet过滤器过滤静态内容。我该怎么做

以下是我目前掌握的代码:

WebappContext webappContext = new WebappContext("grizzly web context", "");
FilterRegistration authFilterReg = webappContext.addFilter("Authentication Filter", org.package.AuthenticationFilter.class);

// If I create a ServletContainer, I can add the filter to it like this:
// authFilterReg.addMappingForServletNames(EnumSet.allOf(DispatcherType.class), "servletName");

HttpServer httpServer = GrizzlyHttpServerFactory.createHttpServer(BASE_URI);
webappContext.deploy(httpServer);

// This works, but the content does not go through the authentication filter above
httpServer.getServerConfiguration().addHttpHandler(new StaticHttpHandler(absolutePath), "/static");

作为WebappContext(Web应用程序)的一部分注册的ServletFilters将仅对与此WebappContext(Web应用程序)相关的请求执行

因此,我看到的解决方案之一是在WebappContext上注册DefaultServlet[1],并使用它代替StaticHttpHandler。比如:

ArraySet<File> set = new ArraySet<File>(File.class);
set.add(new File(absolutePath));
ServletRegistration defaultServletReg = webappContext.addServlet("DefaultServlet", new DefaultServlet(set) {});
defaultServletReg.addMapping("/static");
ArraySet set=newarrayset(File.class);
set.add(新文件(绝对路径));
ServletRegistration defaultServletReg=webappContext.addServlet(“DefaultServlet”,新的DefaultServlet(set){});
defaultServletReg.addMapping(“/static”);

[1]

请你看看我的灰色问题: