栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Jetty嵌入式容器时,ServletContextHandler.setResourceBase和ResourceHandler.setResourceBase有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Jetty嵌入式容器时,ServletContextHandler.setResourceBase和ResourceHandler.setResourceBase有什么区别?

使用该设置,

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449641.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号