Reputation: 428
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
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