您的位置 首页 java

Tomcat原理剖析-tomcat介绍和源码idea构建

一、 tomcat 介绍

1.1 什么是Tomcat

Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试 Servlet JSP 程序的首选。

几乎所有 java 程序员初期都会使用它,今天我们就带着大家深入Tomcat底层原理。

除了tomcat服务器,我们还可以使用其他的 web服务器 ,那常见还还有以下这些:

Undertow:是一个采用 Java 开发的灵活的高性能 Web 服务器,提供包括阻塞和基于 NIO 的非堵塞机制。

JBoss :JBoss公司的,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。

WebLogic Oracle公司 ,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。

WebSphere IBM公司 ,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。

历史沿革

Tomcat 最初由Sun公司的 软件架构师 James Duncan Davidson 开发,名称为 “JavaWebServer”。

1999年,在 Davidson 的帮助下,该项目于 1999 年于apache 软件基金会旗下的 JServ 项目合并,

并发布第一个版本(3.x), 即是现在的Tomcat,该版本实现了Servlet2.2 和 JSP 1.1 规范 。

2001年,发布4.0版本,作为里程碑式的版本,Tomcat 完全重新设计了其架构,并实现了 Servlet

2.3 和 JSP1.2规范。

2003年,发布5.0版本,实现 Servlet 2.4 和 JSP2.0规范。

2007年,发布6.0版本,实现 Servlet 2.5 、JSP2.1 规范。支持EL1.1规范。

2011年,发布7.0版本,实现 Servlet 3.0 和 JSP2.2规范。支持EL2.2规范。加入了WebSocket规

范。

2014年,发布8.0版本,实现 Servlet 3.1 和 JSP2.3规范。支持EL3.0规范。

2016年,发布8.5版本,实现 Servlet 3.1 和 JSP2.3规范。支持HTTP/2, OpenSSL TLS 虚拟主机

和JASPIC1.1。

2018年,发布9.0版本,实现 Servlet 4.0 规范。

目前 Tomcat 已经更新到 10.0.x版本 , 但是目前企业中的Tomcat服务器, 主流版本是8.5 , 所以

本课程是基于 8.5 版本进行讲解。

好吧,这tomcat的发展历史,大家伙稍微看一下即可。

来吧,我们直接去tomcat官网下载一个tomcat服务器吧:下载地址

  • 点击下载即可。
  • 启动(解压下载下来的zip压缩包)
  • window下,直接双击startup.bat启动
  • bin/startup.bat
  • 复制代码
  • 停止
  • window下, shutdown .bat启动
  • bin/shutdown.bat
  • 复制代码

1.2 目录结构介绍

解压下,我们可以看下以下的目录结构:

对于这些目录结构,我们来做个说明:

目录目录下文件说明bin/存放Tomcat的启动、停止等 批处理 脚本文件startup.bat, startup.sh用于在windows和 linux 下的启动脚本shutdown.bat, shutdown.sh用于在windows和linux下的停止脚本conf/用于存放Tomcat的相关配置文件Catalina用于存储针对每个虚拟机的Context配置context.xml用于定义所有web应用均需加载的Context配置。

如果web应用指定了自己的context.xml ,该文件将被覆盖catalina.propertiesTomcat 的环境变量配置catalina.policyTomcat 运行的安全策略配置logging.propertiesTomcat 的日志配置文件, 可以通过该文件修改Tomcat 的日志级别及日志路径等server.xmlTomcat 服务器的核心配置文件tomcat-users.xml定义Tomcat默认的用户及角色映射信息配置web.xmlTomcat 中所有应用默认的部署描述文件,^ 主要定义了基础Servlet和MIME映射。lib/Tomcat 服务器的依赖包logs/Tomcat 默认的日志存放目录webapps/Tomcat 默认的Web应用部署目录work/Web 应用JSP代码生成和编译的临时目录

好了,以上就是tomcat的目录结构说明了。

那我们今天的主要是对tomcat的源码进行构建,这里我们使用idea工具进行tomcat源码构建。

1.3 Tomcat源码学习环境搭建

这里我们先下载好tomcat的源码,tomcat版本:8.5.81

1、源码下载

下载地址

2、源码idea工程搭建

搭建步骤:

  1. 解压源码zip压缩包

  1. 进入解压目录,并创建文件夹,命名为home 。 并将conf、webapps目录移入home 目录中

3.这里还需拷贝lib目录,到home文件夹里面

这里的lib目录,可以用上面我们下载好的tomcat服务器的lib文件夹

  1. 在当前目录下创建一个 pom .xml 文件,引入tomcat相关的依赖
  2. pom.xml
  3. <?xml version=”1.0″ encoding=”UTF-8″?>
  4. <project xmlns=”#34; xmlns:xsi=”#34;
  5. xsi: schemaLocation= ” #34; >
  6. <modelVersion>4.0.0</modelVersion>
  7. <groupId>org. apache .tomcat</groupId>
  8. <artifactId>apache-tomcat-8.5.81-src</artifactId>
  9. <name>Tomcat8.5</name>
  10. <version>8.5</version>
  11. <build>
  12. <finalName>Tomcat8.5</finalName>
  13. <source directory >java</sourceDirectory>
  14. <!– <testSourceDirectory>test</testSourceDirectory>–>
  15. <resources>
  16. <resource>
  17. < directory >java</ directory >
  18. </resource>
  19. </resources>
  20. <!–<testResources>–>
  21. <!– <testResource>–>
  22. <!– <directory>test</directory>–>
  23. <!– </testResource>–>
  24. <!–</testResources>–>
  25. <plugins>
  26. <plugin>
  27. < groupId >org.apache.maven.plugins</ groupId > < artifactId >maven-compiler-plugin</ artifactId > < version >2.3.2</ version > < configuration > < encoding >UTF-8</ encoding > < source >1.8</ source > < target >1.8</ target > </ configuration >
  28. </plugin>
  29. </plugins>
  30. </build>
  31. <dependencies>
  32. <dependency>
  33. <groupId> junit </groupId>
  34. <artifactId>junit</artifactId>
  35. <version>4.12</version>
  36. <scope>test</scope>
  37. </dependency>
  38. <dependency>
  39. <groupId>org.easymock</groupId>
  40. <artifactId>easymock</artifactId>
  41. <version>3.4</version>
  42. </dependency>
  43. <dependency>
  44. <groupId>ant</groupId>
  45. <artifactId>ant</artifactId>
  46. <version>1.7.0</version>
  47. </dependency>
  48. <dependency>
  49. <groupId>wsdl4j</groupId>
  50. <artifactId>wsdl4j</artifactId>
  51. <version>1.6.2</version>
  52. </dependency>
  53. <dependency>
  54. <groupId>javax.xml</groupId>
  55. <artifactId>jaxrpc</artifactId>
  56. <version>1.1</version>
  57. </dependency>
  58. <dependency>
  59. <groupId>org.eclipse.jdt.core.compiler</groupId>
  60. <artifactId>ecj</artifactId>
  61. <version>4.5.1</version>
  62. </dependency>
  63. </dependencies>
  64. </project>
  65. 复制代码
  66. 导入工程到idea

导入到idea中,并进行 maven 构建。

  1. 配置主函数启动类 ,并配置 VM 参数

复制代码

  1. 启动Tomcat 源码主方法, 运行访问

文章来源:智云一二三科技

文章标题:Tomcat原理剖析-tomcat介绍和源码idea构建

文章地址:https://www.zhihuclub.com/177795.shtml

关于作者: 智云科技

热门文章

网站地图