齐木楠雄的灾难 猫cv:Servlet/JSP深入详解:基于Tomcat的Web开发第一章02

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 01:42:05

1.6   Tomcat的体系结构

Tomcat服务器是由一系列可配置的组件构成的,其中核心组件是Catalina Servlet容器,它是所有其他Tomcat组件的顶层容器。Tomcat各组件之间的层次关系如图1-20所示。

图1-20  Tomcat组件之间的层次结构

我们下面简单介绍一下各组件在Tomcat服务器中的作用。

(1)Server

Server表示整个的Catalina Servlet容器。Tomcat提供了Server接口的一个默认实现,这通常不需要用户自己去实现。在Server容器中,可以包含一个或多个Service组件。

(2)Service

Service是存活在Server内部的中间组件,它将一个或多个连接器(Connector)组件绑定到一个单独的引擎(Engine)上。在Server中,可以包含一个或多个Service组件。Service也很少由用户定制,Tomcat提供了Service接口的默认实现,而这种实现既简单又能满足应用。

(3)Connector

连接器(Connector)处理与客户端的通信,它负责接收客户请求,以及向客户返回响应结果。在Tomcat中,有多个连接器可以使用。

(4)Engine

在Tomcat中,每个Service只能包含一个Servlet引擎(Engine)。引擎表示一个特定的Service的请求处理流水线。作为一个Service可以有多个连接器,引擎从连接器接收和处理所有的请求,将响应返回给适合的连接器,通过连接器传输给用户。用户允许通过实现Engine接口提供自定义的引擎,但通常不需要这么做。

(5)Host

Host表示一个虚拟主机,一个引擎可以包含多个Host。用户通常不需要创建自定义的Host,因为Tomcat给出的Host接口的实现(类StandardHost)提供了重要的附加功能。

(6)Context

一个Context表示了一个Web应用程序,运行在特定的虚拟主机中。什么是Web应用程序呢?在Sun公司发布的Java Servlet规范中,对Web应用程序做出了如下的定义:“一个Web应用程序是由一组Servlet、HTML页面、类,以及其他的资源组成的运行在Web服务器上的完整的应用程序。它可以在多个供应商提供的实现了Servlet规范的Web容器中运行”。一个Host可以包含多个Context(代表Web应用程序),每一个Context都有一个唯一的路径。用户通常不需要创建自定义的Context,因为Tomcat给出的Context接口的实现(类StandardContext)提供了重要的附加功能。

下面我们通过图1-21来帮助读者更好地理解Tomcat服务器中各组件的工作流程。

要了解这些组件的其他信息,可以看下面的页面:

%CATALINA_HOME%\webapps\docs\architecture\overview.html

我们可以在conf目录下的server.xml文件中对这些组件进行配置,读者打开server.xml文件,就可以看到元素名和元素之间的嵌套关系,与Tomcat服务器的组件是一一对应的,server.xml文件的根元素就是。关于server.xml配置文件中的各元素及其属性的含义,请参看附录C。

图1-21  Tomcat各组件的工作流程

在Tomcat中,提供了各组件的接口及其实现类,如果你要替换Tomcat中的某个组件,只需要根据该组件的接口或类的说明,重写该组件,并进行配置即可。图1-22是Tomcat各组件的类图。

图1-22  Tomcat的组件类图

在类图的接口名或类名下面是该接口或该类所在的包,这些接口和类都在%CATALINA_HOME%\lib\catalina.jar文件中。对Tomcat服务器的实现感兴趣的读者,可以从http://tomcat.apache.org/download-60.cgi上下载Tomcat的源代码。

由于Apache软件基金会并不是一个商业性的组织,所以文档更新的速度有时候跟不上版本更新的速度。在Tomcat 6.0.16中,就可以发现文档与其源码实现有不一致的地方。从Tomcat 5.5开始,Tomcat的实现中就已经去掉了org.apache.catalina.Connector接口及其相关的实现类,而直接以org.apache.catalina.connector.Connector类来代替。我们在看Tomcat的文档时,最好结合其API文档一起看,这样才能保证了解的信息是完整和准确的。

1.7   Tomcat的管理程序

Tomcat提供了一个管理程序:manager,用于管理部署到Tomcat服务器中的Web应用程序。

manager Web应用程序包含在Tomcat的安装包中。要访问manager Web应用程序,需要添加具有管理员权限的账号,编辑%CATALINA_HOME%\conf\tomcat-users.xml文件,在元素中添加manager角色,以及属于该角色的用户名和密码,如例1-1所示。

例1-1  tomcat-users.xml

 

 

以粗体显示的代码是我们添加的。注意,用户名和密码可以根据自己的喜好来设置,但角色名只能是manager。

启动Tomcat服务器,打开浏览器,在地址栏中输入:

http://localhost:8080/

将出现如图1-23所示的页面。

单击“Tomcat Manager”链接,访问manager Web应用,将看到如图1-24所示的登录界面。

      

图1-23  Tomcat的默认主页                            图1-24  manager Web应用程序的登录界面

输入用户名tomcat,密码12345678,单击“确定”按钮,你将看到如图1-25所示的页面。

图1-25  manager Web应用程序的主页面

在这个页面中,你可以部署、启动、停止、重新加载、卸载Web应用程序。

需要注意图1-25中鼠标(小手形状)指向的链接——“examples”,单击这个链接将进入Tomcat的例子页面,如图1-26所示。

图1-26  Tomcat的例子页面

单击图1-26所示的两个链接,将看到Tomcat提供的Servlet和JSP的例子程序,这些程序可以作为学习Servlet和JSP的参考。

Tomcat 6.0之前的版本还提供了一个admin Web应用程序,用于管理和配置Tomcat服务器本身,这个Web应用程序需要单独下载。Tomcat 6.x没有提供admin Web应用程序的下载。

1.7   Tomcat的管理程序

Tomcat提供了一个管理程序:manager,用于管理部署到Tomcat服务器中的Web应用程序。

manager Web应用程序包含在Tomcat的安装包中。要访问manager Web应用程序,需要添加具有管理员权限的账号,编辑%CATALINA_HOME%\conf\tomcat-users.xml文件,在元素中添加manager角色,以及属于该角色的用户名和密码,如例1-1所示。

例1-1  tomcat-users.xml

 

 

以粗体显示的代码是我们添加的。注意,用户名和密码可以根据自己的喜好来设置,但角色名只能是manager。

启动Tomcat服务器,打开浏览器,在地址栏中输入:

http://localhost:8080/

将出现如图1-23所示的页面。

单击“Tomcat Manager”链接,访问manager Web应用,将看到如图1-24所示的登录界面。

      

图1-23  Tomcat的默认主页                            图1-24  manager Web应用程序的登录界面

输入用户名tomcat,密码12345678,单击“确定”按钮,你将看到如图1-25所示的页面。

图1-25  manager Web应用程序的主页面

在这个页面中,你可以部署、启动、停止、重新加载、卸载Web应用程序。

需要注意图1-25中鼠标(小手形状)指向的链接——“examples”,单击这个链接将进入Tomcat的例子页面,如图1-26所示。

图1-26  Tomcat的例子页面

单击图1-26所示的两个链接,将看到Tomcat提供的Servlet和JSP的例子程序,这些程序可以作为学习Servlet和JSP的参考。

Tomcat 6.0之前的版本还提供了一个admin Web应用程序,用于管理和配置Tomcat服务器本身,这个Web应用程序需要单独下载。Tomcat 6.x没有提供admin Web应用程序的下载。

1.8   小结

本章首先介绍了Web技术的发展,引出了Servlet技术,Servlet技术是Java阵营给出的CGI解决方案。接着我们介绍了Servlet和Servlet容器的相关概念,以及Servlet容器的分类。Tomcat是一个免费开源的Servlet容器,但同时它也是一个基本的HTTP服务器,只是在静态页面的处理上不如Apache HTTP服务器。所以很多Web应用会结合使用Apache和Tomcat,Apache作为HTTP Web服务器,Tomcat作为Web容器。

本章还介绍了Tomcat的安装与配置,为了让读者对Tomcat服务器有一个整体的认识,我们分析了Tomcat的启动过程,讲解了Tomcat的体系结构。最后,我们介绍了Tomcat提供的管理程序manager。利用manager Web应用程序可以管理部署到Tomcat服务器中的Web应用程序。在后面的章节中,读者可以利用这个管理程序来配置和管理Web应用程序。下一章,我们将开始讲解Servlet技术。