- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
11StandardContext
贝毅君 浙江大学软件学院 主要内容 方法调用序列 StandardContext Context的启动 StandardContextMapper映射器 重载的支持 示例应用程序 方法调用序列 Context实例代表一个具体的Web应用程序 包含一个或多个Wrapper实例 每个Wrapper表示一个具体的servlet定义 Context容器需要其他组件的支持,例如典型的载入器和管理器 StandardContext类通过ContextConfig类来配置StandardContext实例的生命周期监听器 Context实例通过StandardContextMapper来配置Wrapper容器 StandardContext Context的启动 start() 方法会初始化 StandardContext对象,详细启动代码参照书本p179 触发BEFORE_STATR事件 将available属性设置为false 将configured属性设置为false 配置资源 设置载入器 设置Session管理器 初始化字符集映射器 Context的启动 启动与该Context容器相关联的组件 启动子容器 启动管道对象 启动Session管理器 触发Start事件,监听器执行一系列配置操作,若配置设置成功,ContextConfig实例会将StandardContext的configured变量设置为true 检查configured属性的值,若为true,则调用postWelcomePages()方法,载入需要启动时候载入的子容器(Wrapper),最后将avaiable属性设置为true。若configured变量为false,则调用stop()方法 触发AFTER_START事件 StandardContext的invoke()由基础阀调用 Context的启动 – invoke() public void invoke(Request request, Response response) throws IOException, ServletException { //如果正在执行重载操作则等待 while (getPaused()) { try { Thread.sleep(1000); } catch (InterruptedException e) { ; } } Context的启动 – invoke() // 正常请求处理过程 if (swallowOutput) { try { SystemLogHandler.startCapture(); super.invoke(request, response); } finally { String log = SystemLogHandler.stopCapture(); if (log != null log.length() 0) { log(log); } } } else { super.invoke(request, response); } } Super.invoke()调用了pipline的invoke()方法 StandardContextMapper映射器 Tomcat4中,StandardContextValve实例使用StandardContext实例的映射器找到一个合适的Wrapper实例。 Mapper必须和Servet容器关联 添加默认映射器的方法是在ContainerBase中完成的。 StandardContext类在启动方法start()中调用方法addDefaultMapper来传入映射器的值。默认映射器的值定义如下 private String mapperClass = “org.apache.catalina.core.StandardContextMapper” ContainBase的addDefaultMapper() StandardContextMapper映射器 protected void addDefaultMapper(Strin
您可能关注的文档
最近下载
- 人教版二年级数学期末试卷.docx VIP
- 地铁疏散平台施工方案.docx VIP
- 2021中国智能家居生态发展白皮书.pptx VIP
- 中职人工智能技术应用专业人才培养模式的探索与实践报告.docx VIP
- 2025广西公需科目考试答案(3套,涵盖95_试题)一区两地一园一通道建设;人工智能时代的机遇与挑战.docx VIP
- 智能家居生态发展白皮书.pptx VIP
- 2018-2024年海峡杯数学竞赛真题及答案(三年级).pdf VIP
- 铁路线路防护栅栏(通线〔2023〕8001)下.docx VIP
- 范德堡法.doc VIP
- 2023-2024学年江苏省高中语文高三期末通关考试题详细答案和解析.docx VIP
文档评论(0)