2017-02-12 13 views
0

Я пытаюсь создать два сервлета. во-первых, основной сервлет с «/» и сервлетом ресурсов с другого пути. но оба пути начинается с «/» (моя работа) режjetty - создать главный и ресурсный сервлет

я писал:

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 "/ д"); (локальный: 8001/кв)

вместо:

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

надеюсь, что я был достаточно ясным.

Спасибо,

ответ

0

найти его здесь https://examples.javacodegeeks.com/enterprise-java/jetty/jetty-resource-handler-example/

необходимо объявить путь к 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();