How Tomcat Works(七)】的更多相关文章

目录 什么叫发布 webapp发布方式 reload 总结 什么叫发布 发布就是让tomcat知道我们的程序在哪里,并根据我们的配置创建Context,进行初始化.启动,如下: 程序所在的位置 创建Context,添加到Host 初始化(创建解析webxml的digester) 启动(初始化filter.listener.servlet) webapp发布方式 在tomcat 中发布webapp的方式不同会导致app启动的先后顺序不一样(这里按照启动顺序或者时机不同进行划分): 在xml中配置,…
本文接下来介绍并分析servlet容器,servlet容器是用来处理请求servlet资源,并为web客户端填充response对象的模块. servlet容器是org.apache.catalina.Container接口的实例,在tomcat中,有四种类型的容器,分别为Engine.Host .Context和Wrapper. Engine. 代表整个容器的servlet引擎.Host.代表一个拥有一定数量Context的虚拟主机.Context.代表一个Web项目.一个Context包含一…
最近几篇是关于How tomcat works一书的读书笔记. 通过数个章节逐渐实现一个tomcat的功能. 源码下载地址:http://zhidao.baidu.com/share/7007af0fe074347e7c88d8c0a11c1f2b.html…
上一节说到StandardService负责启动其子组件:container和connector,不过注意,是有先后顺序的,先启动container,再启动connector,这一节先来看看container. 目录 Pipeline和Vavle StandardEngine类和StandardHost类 StandardContext类 总结 Pipeline和Vavle 在第二节(How Tomcat works — 二.tomcat启动(1))中没有介绍关于Pipeline和Vavle,因…
在How Tomcat Works(十四)中,本人并没有对javax.servlet.Filter及javax.servlet.FilterChain做详细的描述,本文在这里做一下补充 FilterChain接口只有一个方法,方法声明如下: public void doFilter ( ServletRequest request, ServletResponse response ) throws IOException, ServletException; 在tomcat中,org.apac…
在前面的文章中,如果我们要启动tomcat容器,我们需要使用Bootstrap类来实例化连接器.servlet容器.Wrapper实例和其他组件,然后调用各个对象的set方法将它们关联起来:这种配置应用程序的方法有一个明显的缺陷,即所有的配置都必须硬编码.调整组件配置和属性值都必须要重新编译Bootstrap类.幸运的是,Tomcat的设计者使用了一种更加优雅的配置方式,即使用一个名为server.xml的XML文件来对应用程序进行配置.server.xml文件中的每个元素都会转换为一个java…
在前面的文章中,已经学会了如何通过实例化一个连接器和容器来获得一个servlet容器,并将连接器和容器相关联:但在前面的文章中只有一个连接器可用,该连接器服务8080端口上的HTTP请求,无法添加另一个连接器来服务诸如HTTPS之类的其他请求:此外,在前面的文章中的应用程序中有些缺憾,即缺少一种启动/关闭servlet容器的机制. org.apache.catalina.Server接口的实例表示Catalina的整个servlet引擎,囊括了所有的组件:它使用一个优雅的方式来启动/关闭整个系统…
本文接下来会介绍Host容器和Engine容器,在tomcat的实际部署中,总是会使用一个Host容器:本文介绍Host接口和Engine接口及其相关类 Host容器是org.apache.catalina.Host接口的实例,Host接口继承自Container接口, 其定义如下 public interface Host extends Container { public static final String ADD_ALIAS_EVENT = "addAlias"; publ…
本文接下来分析Context容器,Context容器实例表示一个具体的Web应用程序,其中包括一个或多个Wrapper实例:不过Context容器还需要其他的组件支持,典型的如载入器和Session管理器等. 在创建StandardContext实例后,必须调用其start()方法来为引入的每个HTTP请求服务:其中包括读取和解析默认的web.xml文件(该文件位于%CATALINA_HOME%/conf目录),该文件的内容会应用到所有部署到tomcat中的应用程序中:此外,还会配置验证器阀和许…
我们已经知道,在tomcat中有四种类型的servlet容器,分别为Engine.Host.Context 和Wrapper,本文接下来对tomcat中Wrapper接口的标准实现进行说明. 对于每个引入的HTTP请求,连接器都会调用与其关联的servlet容器的invoke()方法:然后,servlet容器会调用所有子容器的invoke()方法 这里面的流程通常是servlet容器调用其管道对象的invoke()方法,其管道对象的invoke()方法最后调用其基础阀,管道对象的基础阀里面会调用…