1、利用TortoiseSVN从tomcat的SVN库中把它的主干代码check下来(SVN地址:http://svn.apache.org/repos/asf/tomcat/tc7.0.x/trunk) 2、确保你安装了ant,从http://ant.apache.org/下载ant的最新版本,并把%ANT_HOME%\bin目录配置到环境变量中,在命令行运行an...
简介 Acceptor顾名思义就是接收器,用于接收用户请求,这节主要是分析Acceptor的启动和处理请求! 首先来看Acceptor的类图 从图中可以看出Acceptor实现了Runnable接口,可以作为一个线程启动,且都是Endpoint的内部类。Acceptor有3种实现JIo、Apr、Nio本节不...
org.apache.coyote.Request和org.apache.coyote.Response 在Acceptor接收到一个socket之后,在JIoEndpoint的processSocket方法中这个socket被包装成SocketWrapper [html] view plaincopyprint? protectedbooleanprocessSocket(Socketsocket){ //Processthereq...
如下图所示,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应用程序来处理这个...