Tomcat是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web应用服务器。
Tomcat主要组件包括服务器Server 、服务Service 、连接器Connector 和容器Container 。其中,连接器Connector和容器Container是Tomcat的核心。一个容器和一个或多个连接器组合在一起,加上其他一些支持的组件共同组成一个服务Service,有了服务Service便可以对外提供能力了,但是服务服务的生存需要一个环境,这个环境便是服务器Server,服务器组件为服务服务的正常使用提供了生存环境,服务器组件可以同时管理一个或多个服务服务。
下面详细说说容器和连接器。
连接器(Connector)
连接器的主要职责是接收外部的请求,并将请求传递给容器进行处理。具体来说,当一个HTTP请求到达Tomcat时,连接器会负责接收这个请求,并创建一个Request和Response对象,然后将这两个对象传递给容器进行处理。连接器的主要任务是负责与外部世界的交互,即监听和接收请求。
在Tomcat中,默认的连接器是HTTP连接器,它使用标准的Java HttpServer API来处理HTTP请求。此外,Tomcat还支持其他的连接器,如AJP连接器等,以支持不同的协议和通信模型。
容器(Container)
容器的主要职责是处理由连接器传递进来的请求,并返回响应。容器负责管理Web应用程序的生命周期,处理应用程序的请求,并返回相应的响应。在Tomcat中,容器可以分为四种类型:
- Engine:引擎是容器的父容器,它可以包含一个或多个虚拟主机(Virtual Host)。一个Engine可以处理所有到达Tomcat的请求。
- Host:虚拟主机是Engine的子容器,它可以包含一个或多个Web应用程序(Context)。每个虚拟主机都可以有自己的配置和域名。
- Context:Web应用程序(也称为Context)是Host的子容器,它包含了应用程序的所有资源,如Servlet、JSP页面、类等。每个Web应用程序都有自己的Context和Web资源。
- Wrapper:Wrapper是Tomcat的最底层容器,它负责处理具体的请求和响应操作。Wrapper负责调用Web应用程序中的Servlet或JSP页面来处理请求,并将响应返回给Engine。