2014-03-27 31 views
3

你好我使用碼頭9與guice和澤西島。如何使用GZIP?碼頭GZIP過濾器

Server server = new Server(8080); 
ServletContextHandler handler = new ServletContextHandler(); 
handler.addFilter(GuiceFilter.class, "/*", EnumSet.allOf(DispatcherType.class)); 
handler.addFilter(CORSFilter.class, "/*", EnumSet.allOf(DispatcherType.class)); 

FilterHolder holder = new FilterHolder(GzipFilter.class); 
holder.setInitParameter("deflateCompressionLevel", "9"); 
holder.setInitParameter("minGzipSize", "0"); 
holder.setInitParameter("mimeTypes", "application/json"); 

handler.addFilter(holder, "/*", EnumSet.of(DispatcherType.REQUEST)); 

handler.addEventListener(new GuiceServletConfig()); 

server.setHandler(handler); 

server.start(); 
server.join(); 

趁我請求調試不叫

+0

我不知道,但不應將過濾器吉斯進行配置呢? – Opal

回答

1

添加GzipFilter第一,GuiceFitler和CORSFilter

0

之前我「的doFilter」的方法,但使用安裝在你的噴射器的servlet時,你可以將其添加在你的模塊configureServlets()函數中是這樣的。

final Map<String, String> params = Maps.newHashMap(); 
    params.put("mimeTypes", "text/html,text/xml,text/plain,application/javascript,application/json"); 
    params.put("methods", "GET,PUT,POST,DELETE"); 
    params.put("deflateCompressionLevel", "9"); 
    bind(GzipFilter.class).in(Singleton.class); 
    filter("/*").through(GzipFilter.class, params); 

更多信息見Guice ServletModule#dispatch-order