J'ai une application en cours d'exécution sur un serveur jetty intégré. J'essaye d'ajouter une écriture pour ajouter un RewriteHandler afin de rediriger de la racine de mon application Web (http:///www.example.com) à (http: www.example.com/web). J'ai ajouté le RewriteHandler, mais je suis redirigé vers http://www.example.com/home.html (ou main.html, selon que l'utilisateur s'est connecté ou non).Jetty RewriteHandler et contextHandler
Je veux vraiment être redirigé vers http://www.example.com/web/home.html. Comment dois-je modifier le code ci-dessous, pour que cela se produise:
ServletContextHandler servletHandler =
new ServletContextHandler(ServletContextHandler.SESSIONS);
ServletHolder jerseyServlet = servletHandler.addServlet(ServletContainer.class, "/*");
String staticPath = StartServer.class.getResource("/resources/www-static/").toExternalForm();
ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setBaseResource(Resource.newResource(staticPath));
resourceHandler.setWelcomeFiles(new String[] { "home.html" });
ContextHandler staticHandler = new ContextHandler("/web");
staticHandler.setHandler(resourceHandler);
RewriteHandler rewriteHandler = new RewriteHandler();
rewriteHandler.setRewriteRequestURI(true);
rewriteHandler.setRewritePathInfo(false);
RewritePatternRule redirect = new RewritePatternRule();
redirect.setPattern("^/?$");
redirect.setReplacement("/web");
rewriteHandler.addRule(redirect);
rewriteHandler.setHandler(resourceHandler);
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { servletHandler, staticHandler, rewriteHandler });
jetty.setHandler(handlers);