如下图所示,Tomcat服务器主要有两大核心模块组成:连接器和容器,本节只分析连接器的实现。 连接器主要是接收用户的请求,然后封装请求传递给容器处理,tomcat中默认的连接器是Coyote.首先来看连接器的类图: protocol 我们发现这个类里面有很多与protocol...
Wrapper 代表一个 Servlet,它负责管理一个 Servlet,包括的 Servlet 的装载、初始化、执行以及资源回收。它的父容器一般是Context,Wrapper 是最底层的容器,它没有子容器了,所以调用它的 addChild 将会抛illegalargumentexception。Wrapper 的实现类是 St...
类装载器 JDK中提供了3种不同的类加载器:启动类装载器,扩展类装载器和系统类装载器。引导类装载器,用于引导启动JAVA虚拟机,当执行一个JAVA程序时,就会启动引导类装载器,它是使用本地代码来实现的,会装载%JAVA_HOME%\\jre\lib\rt.jar,它是所有类装载...
容器主要负责处理来自客户端的请求,并把响应结果返回给客户端。前面提到一个Service是由一个容器和多个连接器组成的,接口org.apache.catalina.Container是对容器的抽象,来看看这个接口中都有哪些方法? 1、与容器层次结构有关的方法 [html] view plaincop...
Enginetomcat engine是一个完整的Servlet容器,其下面拥有多个虚拟主机,它的责任就是将用户请求分配给一个虚拟上机处理。接口Engine代表一个Servlet引擎,其实现类是StandardEngine,先来看看构造方法 [html] view plaincopyprint? publicStandardEngine(){...
同HostConfig一样,ContextConfig也是在Digester解析server.xml的时候添加到StandardContext上的监听器,ContextConfig主要是处理web应用的配置文件,先看看它的init方法做了哪些事? protected void init(){ //CalledfromStandardContext.init() Digesterco...
context 一个context代表一个web应用,它运行在特定的虚拟主机中,每个web应用要么是一个war文件,要么是一个符合规范的目录。一般HTTP请求路径中带有requestURI,我们可以从requestURI中获取上下文路径,根据上下文路径可以选择适合的web应用程序来处理这个...
引言 tomcat中一个Host代表一个虚拟主机,一个虚拟主机上可以有多个应用。Host的默认实现是StandardHost,它的pipeline有两个阀门:ErrorReportValve和StandardHostValve。前者负责选择context来处理用户请求,后者负责处理错误信息。本文主要讲解host容器部...
什么是HostConfig HostConfig实现了LifecycleListener接口,因此它是一个监听器,这个监听器的作用是部署应用。那么这个监听器是加在哪个组件上的呢?是何时被添加的呢?我们知道,在Catalina容器启动过程中会加载server.xml配置文件,这是通过Digester库来...
我一直在使用的一台测试用VMware虚拟机,其原来只有8G的磁盘大小,可最近因数据太多,导致空间不够。因不想重装系统, 决定在保留原有数据的情况下,对其进行扩容。 该扩容方法也适合于在现实环境中,即单个物理磁盘仍有剩余空间用于扩大原分区的情况(有点...