您需要将上下文的资源库设置为可以从中访问静态内容的URL / URI。
注意:您是在
ServletContext级别而不是
DefaultServlet级别上设置的,这样您上下文中的所有servlet都可以访问相同的信息,并且
ServletContext与真实文件路径和资源有关的各种方法都是明智的。
public static void main(String[] args) throws Exception{ Server server = new Server(8080); // Figure out what path to serve content from ClassLoader cl = MyEmbeddedJettyMain.class.getClassLoader(); // We look for a file, as ClassLoader.getResource() is not // designed to look for directories (we resolve the directory later) URL f = cl.getResource("static-root/hello.html"); if (f == null) { throw new RuntimeException("Unable to find resource directory"); } // Resolve file to directory URI webRootUri = f.toURI().resolve("./").normalize(); System.err.println("WebRoot is " + webRootUri); ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); context.setContextPath("/"); context.setbaseResource(Resource.newResource(webRootUri)); context.setWelcomeFiles(new String[]{"welcome.html"}); ServletHolder holderPwd = new ServletHolder("default", DefaultServlet.class); holderPwd.setInitParameter("dirAllowed","true"); context.addServlet(holderPwd,"/"); server.setHandler(context); server.start(); server.join();}


