




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
tomcat4种容器:engine(引擎),host(主机(上下文)wrapper(包装器。一个上下文一般包括一个或者多个包装器,每一个包装器表示一个servlet。首先介绍一个HTTP请求会唤醒的一系列方法,接下来介绍了javax.servlet.SingleThreadModel接口。对于每接,连接器都会调用关联容器的invoke方法。接下来容器调用它的所有子容器的invoke方法.(如上图).上图展示了接器收到一个HTTP连接器调用StandardContext的invoke方法.并且StandardContext的invoke方法必须调用该上下文invokeStandardContextStandardContextValveinvokeStandardContextValve的invoke方法得到合适的包装器来对请求进行服务并调用包装器的invoke方法.(web.xmlservlet信息)StandardWrapperValve的invoke方调用包装器的allocate方法获得一个servlet的实例。(如果servlet实例在tomcat内存中存在,allocate方加载该servlet实例而不是创建servlet实例,loadservletinitservletjavax.servlet.SingleThreadModel接口.ServletSIngleThreadModel就能保证它们的servlet是线程安全的。但显然并非如此.请看下文StandardWrapperservlet在servlet第一次被请求的时候,StandardWrapper加载servlet类。它是动态的加载servlet,所以需要知道servlet类的完全限定名称。通过StandardWrapper类的setServletClass方法将servlet的类名传递给StandardWrapperStandardWrapperValveservletservlet是否实现了SingleThreadModel接口。AllocateservletSingleThreadModel接口,StandardWrapperservlet一次,对于以后的请求返STMservlet,情况就有所不同了。StandardWrapperSingleThreadModelservletserviceStandardWrapper维持一个SingleThreadModelservlet的实例,下面是它如何调用servlet的service方法:可以看到,servletservice方法调用保持单线程(862loadServlet方法).显然,SingleThreadModelservlet实例池(instancePool).这在下面会详细介绍AllocatingtheStandardWrapperValveinvokeallocateservlet的实例。该方法签名如下:publicjavax.servlet.Servletallocate()throwsServletException;由于要支持STMservletSTMservlet。基本结构如下(见下图singleThreadModelservletSingleThreadModelservlet。它的初始值是false,loadServlet方检测加载的servlet是否是STM的,如果true第一部分:对于非STM第二部分:STMStandardWrapperSTMservletallocate尝试返回池中的一个实例,变量intancePool是一个java.util.Stack类型的STMservletloadServletallocateSTMservlet实例,前提是实例的数目不超过最大数目,该数目由maxInstances整型定义,默认值是20.(下图)StandardWrappernInstancesSTMallocate上面的代码使用一个while循环等待直到nInstances的数目少于或等于countAllocated(。在循环里,allocate方法检查nInstance的值,如果低于maxInstances的值,调用loadServlet方法并将该实例添加到池中,增加nInstances的值。如果nInstances的值等于或大于maxInstanceswait方法,直到一个实例被返回。STMservlet实例.servlet创建一个容器(栈),当同时有多个请求同一个servlet时会尝试从容器中取得servlet实例(如果取完了就会继续创建),当servlet完成任务后,servlet放回容器中待命.Servlet的serviceservlet容器可以保证同步进入一个servl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 动脉瘤术后的护理
- 公交员工教育培训
- 中学音乐教育体系构建与实践路径
- 装修电销话术培训
- 中职教育发展探索与实践
- 特殊口腔护理
- 2025年海洋生态保护与修复政策对海洋生态系统服务功能可持续性提升策略报告
- 休闲农业与乡村旅游融合发展规划报告:乡村旅游与旅游产业融合的商业模式创新001
- 绘画火龙果课件
- 小学数学教师入职面试培训
- 新产品评审管理办法
- (参考)菲达公司国内电除尘器业绩表
- 游泳池水质检测记录表
- 大学生职业生涯规划与就业指导教案第5讲:兴趣探索
- 门店电表记录表
- 七年级劳技 花卉种植 花卉用途 PPT学习教案
- 隧道换拱专项施工方案
- 国际金融托马斯普格尔复习资料整理
- 基于单片机的报警器与旋转灯设计(共21页)
- 中国农业银行房地产押品价值评估操作模板
- JJG596-2012《电子式交流电能表检定规程》
评论
0/150
提交评论