使用该设置,
resourceHandler将永远不会调用,因为链末尾的
DefaultServlet处理(或
Default404Servlet)
ServletContextHandler将始终响应,
resourceHandler甚至无法执行。
如果你有一个
ServletContextHandler,不采用
ResourceHandler使用
DefaultServlet该
ServletContextHandler设置并为您的静态文件。
ResourceHandler是非常简单的,如果要更多控件/功能,请
DefaultServlet在您的配置中使用
ServletContextHandler。
好吧,顺便说一句…
该
ServletContextHandler.setbaseResource(Resource)是对的地方
ServletContext本身配置其上下文范围
resourcebase。
(请注意:setResourcebase()的参数是一个URL字符串,可以指向
file://目录甚至某个
jar:file://位置。
Resource.newResource(String))支持的几乎所有内容)
${resourcebase}/是各种方法的查找点,javax.servlet.ServletContext
例如:String getRealPath(String path)
URL getResource(String path)
InputStream getResourceAsStream(String path)
Set<String> getResources(String path)
- 请求不符合任何您的servlet或过滤器的资源,然后将被处理
DefaultServlet
,这可能会提供静态资源(如*.html
,*.css
,*.js
从指定)${resourcebase}/${request.pathInfo}
ResourceHandler不参加
ServletContextHandler是不适当的
ServletContextHandler。
另外,不要忘记设置
ServletContextHandler.setContextPath(String)为所需的上下文路径(通常是
"/")
是的,您甚至可以在一个中拥有多个
DefaultServlet配置
ServletContextHandler



