Jetty9를 사용하고 텍스트 파일을 압축하면 성능이 향상되는지 테스트하고 싶습니다. http://marianoguerra.org/posts/201205enable-gzip-compression-in-jetty.htmlJetty9에서 gzip 압축 (정적 및 동적)을 활성화하는 방법은 무엇입니까?
내 코드는 다음과 같습니다 : 처음에는이 설명되어처럼 나는 오프라인 압축 파일 봉사에 관심
static private void set_jetty_handlers(Server server)
{
// gzip: I have added it to to serve off-line compressed JavaScript, CSS etc.
// as described at: http://marianoguerra.org/posts/201205enable-gzip-compression-in-jetty.html
ServletHolder servletHolder = new ServletHolder(new DefaultServlet());
servletHolder.setInitParameter("gzip", "true");
ServletContextHandler s_context_handler = new ServletContextHandler();
s_context_handler.addServlet(servletHolder,"/*");
ResourceHandler resource_handler = new ResourceHandler();
resource_handler.setDirectoriesListed(false);
resource_handler.setWelcomeFiles(new String[] {"index.html"});
resource_handler.setResourceBase("");
resource_handler.setCacheControl(MAX_AGE);
// gzip: I have added it to to serve offline compressed JavaScript, CSS etc.
resource_handler.setHandler(s_context_handler);
// I want to work with aliases (links and symbolic links)
ContextHandler context_handler = new ContextHandler();
context_handler.addAliasCheck(new ContextHandler.ApproveAliases());
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { new my_jetty_handler(), resource_handler, new DefaultHandler() });
context_handler.setHandler(handlers);
server.setHandler(context_handler);
configureThreadPool(server);
} // set_jetty_handlers
하지만 다음 test.html.gz
에 test.html
를 압축 할 때 나는 HTTP ERROR: 404
을 얻었다. gzip 압축을 가능하게하기 위해 추가 한 라인에는 주석에 gzip:
이라는 태그가 지정됩니다.
이전 버전의 Jetty는 ResourceHandler.setMinGzipLength()
입니다. 현재의 Jetty 버전에서는 사용할 수 없지만 문서화를 통해 원하는대로 작동합니다.
gzip 압축을 사용 설정하는 방법은 무엇입니까? 처음에는 정적 파일 압축을 테스트하고 싶지만 그 테스트 후에는 GzipFilter
을 동적 컨텐츠를 제공하는 my_jetty_handler()
에 적용하고 Java 코드에서 수행하는 방법이 불분명합니다.
그러면'gzipHandlerRES'를'Server.setHandler (Handler)'배열에 추가해야합니다. –