tomcat中的服务器组件接口是Server接口,服务接口是Service,Server接口表示Catalina的整个servlet引擎,囊括了所有的组件,提供了一种优雅的方式来启动/关闭Catalina部署,而Service接口则封装了容器和连接器,一个Service组件可以有一个容器对象和多个连接器实例,可以自由的把连接器的实例添加到Service组件中,所有的连接器都会与这个容器对象相关联: UML图: 1. StandardService类是Service接口的标准实现类,管理着一个Co…
在上文中我们已经知道了Spring如何从我们给定的位置加载到配置文件,并将文件包装成一个Resource对象.这篇文章我们将要探讨的就是,如何从这个Resouce对象中加载到我们的容器?加载到容器后又是什么样子呢? 大家可以跟着我一步步来,一定要把Spring啃完,加油~ 文章目录 前期准备: 开始解析: 总结: 前期准备: 上篇文章中,我们已经跟踪到了org.springframework.beans.factory.support.AbstractBeanDefinitionReader的l…
近来,我开始阅读tomcat的源码,感觉还挺清晰易懂:为了方便理解,我参考了网上的一些文章,把tomcat的组成归纳一下:整个tomcat的组成如下图所示: Tomcat在接收到用户请求时,将会通过以上组件的协作来给最终用户产生响应.首先是最外层的Server和Service来提供整个运行环境的基础设施,而Connector通过指定的协议和接口来监听用户的请求,在对请求进行必要的处理和解析后将请求的内容传递给对应的容器,经过容器一层层的处理后,生成最终的响应信息,返回给客户端. Tomcat的容…
上一章 简单说明下Tomcat各个组件: Server:服务器,Tomcat服务器,一个Tomcat只有一个Server组件; Service:业务层,是Server下最大的子容器,一个Server可以包含多个Service组件: Connector:连接器,Service的子容器,一个Service可以有多个Connector连接器,作用体现在对外,接收客户端请求,HTTP.TCP等: Container:Service核心组件,通常有Engine.Host.Context.Wrapper,作…
一.Servlet过滤器: 1.介绍: Servlet过滤器本身并不生成请求和响应对象,它只提供过滤作用. Servlet过滤器能够在Servlet被调用之前检查Request对象,修改Request Header和Request内容: 在Servlet被调用之后检查Response对象,修改Response Header和Response内容.Servlet过滤器负责过滤的Web组件可以是Servlet.JSP或HTML文件. 过滤器的工作流程:  2.接口: init(FilterConfi…
一.接口简介: 实现了SingleThreadModel接口的servlet类只能保证在同一时刻,只有一个线程执行该servlet实例的service方法,在tomcat实现中会创建多个servlet实例,即为每个用户创建一个实例,这将导致严重的性能问题. 实现了SingleThreadModel接口的servlet并不能保证是线程安全的,该接口并不能防止servlet访问共享资源造成的同步问题. 在servlet 2.4规范中,singleThreadModel接口已经弃用了,因为他会让程序员…
一.Java类的载入器: 双亲委派模型: 1.JVM提供了三种类型的类加载器:引导类载入器(bootstrap class loader).扩展类载入器(extension class loader).应用程序类载入器(也叫系统类载入器:system class loader): 2.引导类载入器用于引导启动java虚拟机:引导类载入器使用本地代码实现,用来载入jvm需要的类,以及所有java核心类,比如java.lang和java.io等包下的类.扩展类载入器载入标准扩展目录中的类,标准扩展目…
1      工具准备 需要SVN.Maven.JDK.Eclipse.Eclipse M2插件 2      下载源码及发布包 源码在这里:http://svn.apache.org/repos/asf/tomcat/tc7.0.x/tags/TOMCAT_7_0_29 发布包在这里:http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.29/bin/ 说明:下载发布包这个步骤是可选的,好处是免得从源码再自行构建,节省时间:另外发布包里的配置文…
一. 配置: 在tomcat目录下的conf/Server.xml配置文件中增加如下配置: <!-- Cluster(集群,族) 节点,如果你要配置tomcat集群,则需要使用此节点. className 表示tomcat集群时,之间相互传递信息使用那个类来实现信息之间的传递. channelSendOptions可以设置为2.4.8.10,每个数字代表一种方式 2 = Channel.SEND_OPTIONS_USE_ACK(确认发送) 4 = Channel.SEND_OPTIONS_SYN…
一.Cataling类分析: 1.Catalina类是启动类,用于启动或者关闭Server对象,它包含一个Digester对象,用于解析tomcat配置文件:conf/server.xml;调用process方法启动Catalina时需要传入参数,如果是start,表示要启动tomcat,如果是stop,表示要关闭tomcat:其他参数还包括-help, -config, -debug, -nonaming: 2.start方法启动tomcat时,首先创建一个Digester实例来解析serve…