tomcat源码阅读之StandardContext】的更多相关文章

Context实例表示一个具体的web应用程序,其中包含一个或者多个Wrapper实例,每个Wrapper表示一个具体的servlet定义.StandardContext类是Context接口的标准实现. 一.相关类 UML图: 1.StandardContext是一个相当复杂的容器类,他实现了Context接口,类的很多功能是依赖于其他对象完成的,因此在start启动Context时会启动所有的这些依赖对象,Available变量表示StandardContext对象是否可用,如果启动都正常且…
近来,我开始阅读tomcat的源码,感觉还挺清晰易懂:为了方便理解,我参考了网上的一些文章,把tomcat的组成归纳一下:整个tomcat的组成如下图所示: Tomcat在接收到用户请求时,将会通过以上组件的协作来给最终用户产生响应.首先是最外层的Server和Service来提供整个运行环境的基础设施,而Connector通过指定的协议和接口来监听用户的请求,在对请求进行必要的处理和解析后将请求的内容传递给对应的容器,经过容器一层层的处理后,生成最终的响应信息,返回给客户端. Tomcat的容…
一.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/ 说明:下载发布包这个步骤是可选的,好处是免得从源码再自行构建,节省时间:另外发布包里的配置文…
一.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接口已经弃用了,因为他会让程序员…
一.领域(Realm): 1.Principal接口代表角色信息,包含了三个成员:用户名.密码.role列表(以逗号分隔),对应了tomcat-users.xml文件中一行user信息: GenericPrincipal作为Principal接口的默认实现类,提供了hasRole函数,通过这个函数可以判断该角色是否支持指定的role: 2.Realm接口代表领域对象,是一个用来对用户进行身份验证的组件:可以认为Realm是Principal的管理器,包含了用户角色的集合:每个Realm对象都会与…
一. 配置: <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6"> <Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false" notifyListe…
我们知道web应用是用Context实例表示的,而Context是部署到Host实例中的,因此tomcat的部署器是关联的Host实例.Context实例可以用WAR文件部署,也可以把整个web应用的文件夹复制到webapp目录下,而部署器在部署时会扫描webapp目录下的web应用程序,并且还会启动一个监控线程定期扫描webapp目录下的web应用是否发生了更新,如果有更新则重新部署更新的web应用: 一.UML图: 1.部署器的接口是Deployee,其中install方法可以安装一个web…
一. 配置: 在tomcat目录下的conf/Server.xml配置文件中增加如下配置: <!-- Cluster(集群,族) 节点,如果你要配置tomcat集群,则需要使用此节点. className 表示tomcat集群时,之间相互传递信息使用那个类来实现信息之间的传递. channelSendOptions可以设置为2.4.8.10,每个数字代表一种方式 2 = Channel.SEND_OPTIONS_USE_ACK(确认发送) 4 = Channel.SEND_OPTIONS_SYN…