我使用Jetty9,想要测试压缩文本文件是否会提高性能。首先,我对像这个链接描述的离线压缩文件进行服务感兴趣:http://marianoguerra.org/posts/201205enable-gzip-compression-in-jetty.html
我的代码如下:
当我将
我还发现较早版本的Jetty有一个
如何启用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
压缩成test.html.gz
时,我收到了HTTP ERROR: 404
的错误消息。我在注释中使用gzip:
标记添加了启用gzip压缩所需的代码行。我还发现较早版本的Jetty有一个
ResourceHandler.setMinGzipLength()
方法,但在当前版本中不可用,但根据文档,它能实现我的需求。如何启用gzip压缩?起初,我想测试静态文件压缩,但经过这些测试后,我想在
my_jetty_handler()
中应用GzipFilter
以提供动态内容,但从Java代码中如何实现还不清楚。
gzipHandlerRES
添加到Server.setHandler(Handler)
数组中。 - Julien Kronegg