jetty - 创建主要和资源 servlet

jetty - create main and resource servlet

我正在尝试创建两个 servlet。首先,带有“/”路径的主 servlet 和来自另一个路径的资源 servlet。但两条路径都从“/”(我的工作目录)开始

我写了:

    Server server = new Server(8001);
    ServletHandler handler = new ServletHandler();
    handler.addServletWithMapping(Servlet.class, "/");

    ResourceHandler resourceHandler = new ResourceHandler();
    resourceHandler.setResourceBase("./classes/static/");

    HandlerList handlers = new HandlerList();
    handlers.setHandlers(new Handler[] { resourceHandler,handler});
    server.setHandler(handlers);
    server.start();
    server.join();

但一个处理程序与另一个处理程序重叠。

基本上我希望我的代码表现得像:

handler.addServletWithMapping(Servlet.class, "/q"); (本地主机:8001/q)

而不是:

handler.addServletWithMapping(Servlet.class, "/");

希望我说得足够清楚了。

谢谢,

在这里找到 https://examples.javacodegeeks.com/enterprise-java/jetty/jetty-resource-handler-example/

需要声明内容的路径:

    Server server = new Server(8001);
    ServletHandler handler = new ServletHandler();
    handler.addServletWithMapping(Servlet.class, "/");


    ResourceHandler resourceHandler = new ResourceHandler();
    resourceHandler.setResourceBase("./classes/static/");
    resourceHandler.setDirectoriesListed(true);
    ContextHandler contextHandler= new ContextHandler("/static");
    contextHandler.setHandler(resourceHandler);



    HandlerList handlers = new HandlerList();
    handlers.setHandlers(new Handler[] {contextHandler,handler});
    server.setHandler(handlers);
    server.start();
    server.join();