tomcat架构分析(容器类)】的更多相关文章

Tomcat提供了engine,host,context及wrapper四种容器.在总体结构中已经阐述了他们之间的包含关系.这四种容器继承了一个容器基类,因此可以定制化.当然,tomcat也提供了标准实现. Engine:org.apache.catalina.core.StandardEngine Host: org.apache.catalina.core.StandardHost Context:org.apache.catalina.core.StandardContext Wrappe…
Session管理是JavaEE容器比较重要的一部分,在app中也经常会用到.在开发app时,我们只是获取一个session,然后向session中存取数据,然后再销毁session.那么如何产生session,以及session池如何维护及管理,这些并没有在app涉及到.这些工作都是由容器来完成的. Tomcat中主要由每个context容器内的一个Manager对象来管理session.对于这个manager对象的实现,可以根据tomcat提供的接口或基类来自己定制,同时,tomcat也提供…
出处:http://gearever.iteye.com tomcat架构分析 (概览) tomcat架构分析 (容器类) tomcat架构分析 (valve机制) tomcat架构分析 (valve源码导读) tomcat架构分析 (Session管理) tomcat架构分析 (JNDI配置) tomcat架构分析 (JNDI体系绑定) tomcat架构分析 (connector BIO 实现) tomcat架构分析 (connector NIO 实现)…
出处:http://gearever.iteye.com 在tomcat架构分析(概览)中已经介绍过,connector组件是service容器中的一部分.它主要是接收,解析http请求,然后调用本service下的相关servlet.由于tomcat从架构上采用的是一个分层结构,因此根据解析过的http请求,定位到相应的servlet也是一个相对比较复杂的过程.  整个connector实现了从接收socket到调用servlet的全部过程.先来看一下connector的功能逻辑: 接收soc…
出处:http://gearever.iteye.com 上一篇简单记录了缺省配置的connector的内部构造及消息流,同时此connector也是基于BIO的实现.除了BIO外,也可以通过配置快速部署NIO的connector.在server.xml中如下配置: 整个tomcat是一个比较完善的框架体系,各个组件之间都是基于接口的实现,所以比较方便扩展和替换.像这里的“org.apache.coyote.http11.Http11NioProtocol”和BIO的“org.apache.co…
出处:http://gearever.iteye.com 源码面前,了无秘密                              ----侯捷 在tomcat架构分析(valve机制)(http://gearever.iteye.com/blog/1536022)里已经对valve的机制做了分析.现在通过源码来加深下理解.侯捷说过,源码面前,了无秘密.通过这些代码,可以看到在tomcat中我们经常碰到的一些现象或配置是怎么实现的. StandardEngineValve看一下Standar…
出处:http://gearever.iteye.com Tomcat是目前应用比较多的servlet容器.关于tomcat本身的特点及介绍,网上已经有很多描述了,这里不再赘述.Tomcat除了能够支撑通常的web app外,其本身高度模块化的架构体系,也能带来最大限度的可扩展性.目前tomcat版本已经衍生到tomcat7,但是主流的版本还是tomcat6.此系列架构体系介绍还是以tomcat6为蓝本. Tomcat是有一系列逻辑模块组织而成,这些模块主要包括: 核心架构模块,例如Server…
最近在看<深入分析java web技术内幕>,书中讲解了一部分tomcat的相关知识,我也去查看了一些源码,看了大神们写的代码,我才知道自己就像在做加减乘除一样,这是不行的.还有好多包和类要属性.就像要盖高楼大厦一样,对其不熟悉怎么行呢?只有对底层架构了如指掌,才能流畅的写业务,同时也是一个学习的过程. private Context createContext(Host host, String url) { String contextClass = StandardContext.cla…
关于tomcat的内部逻辑单元的存储空间已经在相关容器类的blog里阐述了.在每个容器对象里面都有一个pipeline及valve模块. 它们是容器类必须具有的模块.在容器对象生成时自动产生.Pipeline就像是每个容器的逻辑总线.在pipeline上按照配置的顺序,加载各个 valve.通过pipeline完成各个valve之间的调用,各个valve实现具体的应用逻辑. 先看一下pipeline及valve的逻辑概念图. 这些valve就是在tomcat的server.xml中配置,只要满足…
浏览器访问服务器的流程 请求发起的过程: 注意:浏览器访问服务器使用的是http协议,http是应用层协议,而具体传输还是使用的TCP/IP协议 Tomcat系统总架构 2.1 Tomcat请求处理过程 一个http请求过来,Tomcat会接收,然后根据配置调用不同的servlet来进行处理. 为了解耦,设计了一个Tomcat容器: 因此,Tomcat不仅是一个http服务器,还是一个servlet容器.这也就是它的两个重要的功能: 和客户端浏览器交互,进行socket通信,将字节流和Reque…