简介
Apache Tomcat,经常被成为Tomcat Server,它是由ASF开发的一个开源的java servlet容器。
tomcat实现了很多java ee的规格,包括java servlet ,java server pages(jsp),和java el,还有websocket,然后提供了一个纯净的java http web server环境给java代码运行。
Tomcat是由ASF 基于aPache 2.0开源协议下的赞助开发的一个开发者社区发展和维护的。
组件
Tomcat 4。x与Catalina (servlet容器)、Coyote (HTTP连接器)和Jasper (JSP引擎)一起发布。
Catalina
Catalina是Tomcat的servlet容器。Catalina实现了Sun Microsystems对servlet和JavaServer Pages (JSP)的规范。在Tomcat中,Realm元素表示一个“数据库”,其中包含分配给这些用户的用户名、密码和角色(类似于Unix组)。Realm的不同实现允许Catalina集成到已经创建和维护了此类身份验证信息的环境中,然后使用这些信息实现Servlet规范中描述的容器管理安全性
Coyote
Coyote是Tomcat的连接器组件,它作为web服务器支持HTTP 1.1协议。这允许名义上是Java Servlet或JSP容器的Catalina也充当普通web服务器,将本地文件作为HTTP文档提供服务。[3] Coyote侦听特定TCP端口上到服务器的传入连接,并将请求转发给Tomcat引擎来处理请求并将响应发送回请求客户机。另一个Coyote连接器Coyote JK以类似的方式侦听,但是使用JK协议将其请求转发给另一个web服务器,比如Apache。这通常提供更好的性能。
Jasper
Jasper是Tomcat的JSP引擎。Jasper解析JSP文件,将它们编译成Java代码作为servlet(可以由Catalina处理)。在运行时,Jasper检测对JSP文件的更改并重新编译它们。
从版本5开始,Tomcat使用Jasper 2,这是Sun Microsystems的JSP 2.0规范的实现。从Jasper到Jasper 2,增加了重要的功能:
- JSP标记库池——JSP文件中的每个标记标记都由标记处理程序类处理。可以在整个JSP servlet中对标记处理程序类对象进行池化和重用。
- 后台JSP编译——在重新编译修改过的JSP Java代码时,旧版本仍然可以用于服务器请求。一旦新的JSP servlet完成重新编译,旧的JSP servlet将被删除。
- 当包含的页面更改时重新编译JSP——可以在运行时将页面插入并包含到JSP中。JSP不仅可以用JSP文件更改重新编译,还可以用包含的页面更改重新编译。
- JDT Java编译器——Jasper 2可以使用Eclipse JDT (Java开发工具)Java编译器代替Ant和javac。
随着Tomcat 7的发布,增加了三个新组件:
Cluster:
添加此组件是为了管理大型应用程序。它用于负载平衡,可以通过许多技术来实现。集群支持目前需要JDK 1.5或更高版本。
High availability:
增加了高可用性特性,以方便安排系统升级(例如,新版本、更改请求),而不影响活动环境。这是通过在主服务器在主端口上升级时,将实时流量请求发送到另一个端口上的临时服务器来实现的。它在处理高流量web应用程序上的用户请求时非常有用。
Web application:
它还添加了基于用户和系统的web应用程序增强,以添加对跨各种环境部署的支持。它还尝试跨网络管理会话和应用程序。
Tomcat正在构建其他组件。Apache Tomcat还可以使用许多其他组件。这些组件可以由用户根据需要构建,也可以从其中一个镜像下载