如何从嵌入式码头Servlet使用GzipHandler()

问题描述 投票:-1回答:1

我正在使用码头8.1.3.v20120416(EOL)嵌入式

我已经有一个HttpServlet处理某些GET和POST请求。

现在我想添加gzipHandler()以处理进入上述servlet的所有请求和响应的gzip压缩/解压缩

java servlets jetty gzip embedded-jetty
1个回答
0
投票

GzipResponsesExample in the Embedded Jetty Cookbook ...

import java.io.File;
import java.nio.file.Path;

import org.eclipse.jetty.cookbook.servlets.TimeServlet;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.handler.gzip.GzipHandler;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.util.resource.PathResource;

public class GzipResponsesExample
{
    public static void main(String[] args) throws Exception
    {
        Server server = new Server();
        ServerConnector connector = new ServerConnector(server);
        connector.setPort(8080);
        server.addConnector(connector);

        GzipHandler gzip = new GzipHandler();
        gzip.setIncludedMethods("GET","POST");
        gzip.setMinGzipSize(245);
        gzip.setIncludedMimeTypes("text/plain","text/css","text/html",
                "application/javascript");
        server.setHandler(gzip);

        Path webRootPath = new File("webapps/static-root/").toPath().toRealPath();

        ServletContextHandler context = new ServletContextHandler();
        gzip.setHandler(context);
        context.setContextPath("/");
        context.setBaseResource(new PathResource(webRootPath));
        context.setWelcomeFiles(new String[] { "index.html" });

        // Adding Servlets
        context.addServlet(TimeServlet.class,"/time/");
        context.addServlet(DefaultServlet.class,"/"); // always last, always on "/"

        server.start();
        server.join();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.