具有单页应用程序的嵌入式码头

Embedded jetty with singe page application

我有一个嵌入式 Jetty 服务器提供静态文件(html、图像、css、javascript)...

index.html 是单页应用程序。

如果调用特定路径,我如何配置嵌入式 Jetty 以服务 index.html...例如:

好的,这是我想出的解决方案……不确定它是否最优雅,但它确实有效。

ServletContextHandler servletContextHandler = new ServletContextHandler(server, "/", ServletContextHandler.SESSIONS);
servletContextHandler.setContextPath("/");
servletContextHandler.setWelcomeFiles(new String[] { "index.html" });
servletContextHandler.setResourceBase(webDir);
servletContextHandler.addServlet(DefaultServlet.class, "/");


ErrorPageErrorHandler errorHandler = new ErrorPageErrorHandler();
errorHandler.addErrorPage(404, "/"); // return root ... being index.html
servletContextHandler.setErrorHandler(errorHandler);

我宁愿用某种模式来处理这个问题,而不是对 404 做出反应...