上面说的那几个文件,大致意思都应该晓得的,我们主要关注两个文件,一个是server.xml和web.xml,这两个文件基本上可以包含我们所需要知道的。如果你看到这里,希望可以去读读这两个文件,前面是关于服务器配置的,后面这个文件是所有web项目如果要在tomcat里面run都必须配置的相关描述。还记得前面的DD这个词么,就是部署描述符,每个web项目都有一个描述文件,是自己要编写的,也就是web.xml了。所以一个在tomcat里面run的web项目都包含两份web.xml。
把server文件里的框架提出来:
Server
Listener
GlobalNamingResource
Service
Connector
Engine
Realm
Host
Context
Resource
我们再把一些属性的东西去掉,抽出框架:
Server
-Service
-Connector
-Engine
-Host
-Context
上面这个框架就描述了tomcat是怎么来处理客户端的消息的。
我们先来分一个层次,Server和Service是一个级别,Connector是一个级别,Engine,Host,Content是一个级别,还有一个级别是组件。
先给一个简单的过程,消息是有Service传给Engine,再传给Host,再传给Context的。处理完了,又原路返回到Service。其中的Connector表示实质的连接,Service是通过它将消息传给Engine的。下面细讲一下。
Server就是指服务器本身了,看看它的属性,port和shutdown,port是一个监听端口,它主要是监听关闭服务器的端口,shutdown属性指定了给那个端口发送的标识关闭的字符。
Service是指一类问题的解决方案。 通常我们会默认使用tomcat提供的:Tomcat-Standalone 模式的service。 在这种方式下的service既给我们提供解析jsp和servlet的服务, 同时也提供给我们解析静态文本的服务。(引用)
这个级别似乎还没有什么实质的作用,Server配置只是服务于服务器自身的,Service是服务器提供的一个定义。(我不大了解,它有一个属性name,这样至少可以知道,这个属性可以指定别的值,在开发其他不同类的项目的时候。)
Connector,先看看它的属性,主要是表达了一个端口,还有其他的属性,如果你熟悉socket编程,就应该知道那些属性了。前面说了它的主要作用是帮助Service和Engine交互的。下面实质说说它是怎么帮的。一般有两个Connector,第一个是一般的8080端口监听Http的请求的,第二个是AJP的,不用管,主要是apache和tomcat之间的交互协议的。这样是Connector去端口监听socket,然后把socket封装成Http的请求的,然后传给Engine的。