Tomcat基础篇-项目源码结构介绍

Tomcat源码结构介绍

在分析Tomcat源码之前,我们先来看下Tomcat源码的结构组成,这样会更加的有利于我们更好的来分析源码。

1.项目源码结构

我们先从源码结构开始。Tomcat 服务器相关的代码在 java 文件夹下面,后面我们在进入这个文件夹去分析:

imagepng

之前如何手动在Tomcat中部署过项目的话,这块应该会比较清楚点。

2.Tomcat源码结构

Tomcat 源码位于 java 文件夹下面。这个java文件夹中的每个包的作用,我们简单的来介绍下,后面在分析核心源码的时候会重点讲解。

imagepng

我们可以看到在java目录下,分为了两个结构,一个是javax另一个是org.apache这两个包

2.1 javax

在javax中保存的是新的JavaEE规范。可以具体来看看每个目录的作用。

imagepng

模块作用说明
annotationannotation 这个模块的作用是定义了一些公用的注解,避免在不同的规范中定义相同的注解。
ejbejb是个古老的传说,我们不管
el在jsp中可以使用EL表达式,这么模块解析EL表达式的
mail和邮件相关的规范
persistence持久化相关的
security和安全相关的内容
servlet这个指定的是Servlet的开发规范,Tomcat本质上就是一个实现了Servlet规范的一个容器,Servlet定义了服务端处理Http请求和响应的方式(规范)
websocket定义了使用 websocket 协议的服务端和客户端 API
xml.ws定义了基于 SOAP 协议的 xml 方式的 web 服务

2.2 org.apache

org.apache这个包是Tomcat的源码包,也是针对上面的JavaEE规范的部分实现,Tomcat的本质就是对JavaEE的某些规范的实现合集,首先肯定实现了Servlet规范

imagepng

模块作用
catalinacatalina是Tomcat的核心模块,里面完整的实现了Servlet规范,Tomcat启动的主方法也在里面,后面我们分析的重点。
coyotetomcat 的核心代码,负责将网络请求转化后和 Catalina 进行通信。
el这个是上面javax中的el规范的实现
jasper主要负责把jsp代码转换为java代码。
juli日志相关的工具
naming命名空间相关的内容
tomcat各种辅助工具,包括 websocket 的实现。

3.Tomcat模块设计

连接器的作用:

  • 连接器功能· 监听网络端口。
  • 接受网络连接请求。
  • 根据具体应用层协议(http/ajp)解析字节流,生成统一的Tomcat Request对象。
  • 将Tomcat Request对象转成标准的ServletRequest。
  • 调用Servlet容器,得到ServletResponse。
  • 将ServletResponse转成Tomcat Response对象。
  • 将Tomcat Response转成网络字节流。
  • 将响应字节流写回给浏览器。

imagepng

imagepng
到此Tomcat的目录结构我们已经分析万层,接下来就可以开始我们的Tomcat架构设计!!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值