user2302639
user2302639

Reputation: 428

jetty - create main and resource servlet

I'm trying to create two servlets. first, the main servlet with the "/" path and a resource servlet from another path. but both paths starts from "/" (my work dir)

I wrote:

    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();

but one handler overlap the other.

basically i want my code to act like :

handler.addServletWithMapping(Servlet.class, "/q"); (localhost:8001/q)

instead of:

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

hope I was clear enough.

Thanks,

Upvotes: 1

Views: 700

Answers (1)

user2302639
user2302639

Reputation: 428

find it here https://examples.javacodegeeks.com/enterprise-java/jetty/jetty-resource-handler-example/

needed to declare path to the contant :

    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();

Upvotes: 1

Related Questions