Tomcat 7源码解析
2016-03-02 16:19
423 查看
如上图所示:
Tomcat服务器源码主要包括以上部分:
Server:
Service
Connector:
Container:
以上分别对应tomcat配置目录中server.xml中各个标签<Server><Service><Connector><Engine>等
一、Connector
作用:接收用户的请求,然后封装请求传递给容器处理常用方法:
setProtocol(String protocol)方法-根据指定的相关协议来选择对应处理类
协议分类:
HTTP/1.1协议负责建立HTTP连接,web应用通过浏览器访问tomcat服务器用的就是这个连接器,默认监听的是8080端口;
AJP/1.3协议负责和其他HTTP服务器建立连接,监听的是8009端口,比如tomcat和apache或者iis集成时需要用到这个连接器。
三种不同的实现方式:JIO、APR、NIO。
JIO(java.io):用java.io纯JAVA编写的TCP模块,这是tomcat默认连接器实现方法(类名中间省略);
APR(Apache Portable Runtime):使用C和JAVA两种语言实现,连接Apache httpd Web服务器的类库是在C中实现的,同时用APR进行网络通信;
NIO(java.nio):这是用纯Java编写的连接器(Conector)的一种可选方法。该实现用java.nio核心Java网络类以提供非阻塞的TCP包特性。
对应协议的处理类为~
tomcat默认采用的是Http11Protocol
二、Service服务
Service里面包含了一个容器和多个连接器tomcat默认实现类为StandardService
setContainer(Container container):将容器添加到Service中
addConnector(Connector connector):将连接添加到Service中
三、Mapper
四、初始化与启动
相关文章推荐
- tomcat enable ssl
- MyEclipse配置Tomcat没有Tomcat选项没有小猫图
- tomcat内存溢出解决,java.lang.OutOfMemoryError: PermGen space
- tomcat内存溢出解决,java.lang.OutOfMemoryError: PermGen space
- tomcat内存溢出解决,java.lang.OutOfMemoryError: PermGen space
- tomcat内存溢出解决,java.lang.OutOfMemoryError: PermGen space
- Tomcat类加载机制
- Target runtime Apache Tomcat v6.0 is not defined.错误解决方法
- Eclipse 配置tomcat 不带项目名称
- Target runtime Apache Tomcat v6.0 is not defined.错误解决方法
- Tomcat部署项目通过—IP地址:端口访问
- nginx+tomcat7+session复制 负载均衡
- tomcat一次运行多个java项目
- tomcat启动报JDWP异常
- CentOS安装JDK1.7+Tomcat7
- Tomcat的项目发布路径
- 新建并配置Maven工程
- Tomcat 7.0.50 Coyote 连接器类结构和架构设计简析
- myeclipse2015CI,一些项目无法部署到tomcat6
- 修改tomcat的端口号