iszjw 发表于 2015-7-31 10:46:10

Apache Tomcat6 之连接器学习整理(1)

  因为最近在做java web的开发,用的是Apache Tomcat6+MySql+javaBean,相对于MySql和javaBean来说,Tomcat就陌生了许多,因此花了一点时间看了一下Tomcat的相关资料。趁着机会,把它整理一下(如果认识有错误或不当的地方,希望您能指出来,谢谢)。
  首先说一下Tomcat的架构(Tomcat部署在本地),首先问一个问题,为什么当我们敲下一个URL地址的时候,浏览器会返回来我们想要的页面呢?我们以一个具体的例子来分析说明:比如我们敲的是 http://localhost:8080/koups;那么Tomcat服务器就会用它的嵌套组件来解析这个URL地址,首先,使用Service组件和Coyote Connector组件(监听8080端口)来解析协议:(http://)并将获得的请求交给Engine组件来处理,然后使用Engine引擎来解析一个虚拟主机名(localhost),虚拟主机(localhost)会和Host组件相匹配,若匹配成功,Context组件会和URL中配置的Web应用内容koups相匹配,Web应用程序Koups用来处理请求,它的内容信息存储在一个内容描述文件中。控制Web应用程序的Context组件利用定义在配置文件Web.xml中的来将执行一个匹配操作,此时,由于后面再无其他内容,应用程序默认调用index.*文件,否则将去Web.xml中匹配相应的Servlet组件,Servlet组件最终会执行URL请求。
  以上描述中牵扯到两个核心文件:servlet.xml和web.xml,我们再来看一段servlet.xml文件具体内容:


View Code


1
2
3
4   
5   
6   
7   
8   
9   
10   
11
12   
15   
16   
19   
24   
25
26
27      
28      
31   
32      
33      
35      
38         
39         
40      
41   
42   
43
  在上面的文件中,里面包括了Service.Connector. Engine.Host. Context等关键组件,在连接器组件(Connector)中包括两类,一类是ajp连接器,一类是HTTP连接器,这两种连接器分别代表Tomcat不同的运行模式:当Tomcat作为应用服务器时,它会处理jsp和servlet请求,但是静态内容提供一般由Apache或者IIS来提供,Tomca和Apache通信时,就需要使用ajp协议(此种方式暂且不讨论);当Tomcat在单机模式下运行时,Tomcat需要处理所有的页面请求,包括jsp.servlet和静态内容,此时他就需要HTTP协议。 本文暂且讨论到此,具体的连接器内容下回。。。
  
  
页: [1]
查看完整版本: Apache Tomcat6 之连接器学习整理(1)