目录
一,Tomcat简介
1,简介
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,
是Apache软件基金会(Apache software foundation)Jakarta项目中的一个核心项目
由Apache,Sun和一些公司及个人共同开发而成
深受Java爱好者的喜爱,并得到部分软件开发商的认可
是目前比较流行的web应用服务器
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可 利用它响应
HTML(标准通用标记语言下的一个应用)页面的访问请求。
实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时, 它
实际上作为一个与Apache 独立的进程单独运行的
当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。 另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能, 另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。 不过,Tomcat处理静态HTML的能力不如Apache服务器。
2,Tomcat核心组件
Tomcat有一系列的组件构成,其核心组件有三个:
1)Web 容器:完成 Web 服务器的功能。(负责底层的HTTP协议 )
2)Servlet 容器:名字为 catalina,用于处理 Servlet 代码。(由catalina脚本帮忙处理的servlet代码,主要处理后端逻辑业务catalina实际处理的是Servlet代码,而Servlet代码是由Java编写的)
3)JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码。(主要提供提供前端页面展示<% %>)
多实例:
多实例就是在一台服务器上同时开启多个不同的服务端口,同时运行多个服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供服务。
引擎:
一般而言,引擎是一个程序或一套系统的支持部分。常见的程序引擎有游戏引擎、搜索引擎、杀毒引擎等
名称 | 说明 |
---|---|
server | 服务器,Tomcat运行的进程实例,一个Server中可以有多个service,但通常就一个 |
service | 服务,用来组织Engine和Connector的对应关系,一个service中只有一个Engine |
connector | 连接器,负责客户端的HTTP、HTTPS、AJP等协议连接。一个Connector只属于某一个Engine |
Engine | 即引擎,用来响应并处理用户请求。一个Engine上可以绑定多个Connector |
Host | 即虚拟主机,可以实现多虚拟主机,例如使用不同的主机头区分 |
Context | 应用的上下文,配置特定url路径映射和目录的映射关系: url => directory |
Tomcat处理请求的过程:
-
Tomcat启动一个Server进程。可以启动多个Server,即tomcat的多实例,但一般只启动一个
-
创建一个Service提供服务。可以创建多个Service,但一般也只创建一个
-
每个Service中,是Engine和其连接器Connector的关联配置
-
可以为这个Service提供多个连接器Connector,这些Connector使用了不同的协议,绑定了不同的端口。其作用就是处理来自客户端的不同的连接请求或响应
-
Service 内部还定义了Engine,引擎才是真正的处理请求的入口,其内部定义多个虚拟主机Host
-
Engine对请求头做了分析,将请求发送给相应的虚拟主机
-
如果没有匹配,数据就发往Engine上的defaultHost缺省虚拟主机