学习tomcat必须的知识Word格式文档下载.docx
《学习tomcat必须的知识Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《学习tomcat必须的知识Word格式文档下载.docx(29页珍藏版)》请在冰豆网上搜索。
Servlet被编译为平台中立的字节码,可以被动态地加载到支持Java技术的Web服务器中运行,就如同Applet对客户端一样,区别在于Servlet运行并不需要图形用户界面。
JavaServlet具有如下优点:
(1)Servlet可以和其他资源(数据库、文件、Applet和Java应用程序等)交互,把生成的响应内容返回给客户端。
如果需要,还可以保存“请求—响应”过程中的信息。
(2)服务器采用Servlet可以完全授权对本地资源的访问,Servlet自身也会控制外部用户的访问数量及访问性质。
(3)Servlet可以从本地硬盘,或者通过网络从远端硬盘来激活。
(4)通过ServletTag技术,可以在HTML页面中动态调用Servlet。
(5)Servlet可以是其他服务的客户端程序。
(6)通过链接技术,一个Servlet可以调用另一个或一系列Servlet来成为它的客户端。
(7)ServletAPI与协议无关。
1.1.2Tomcat与Servlet之间的关系
当初在Apache开发时还未出现Servlet的概念,所以Apache不能内置支持Servlet。
实际上,除了Apache,其他许多Web服务器软件都不能直接支持Servlet。
为了支持Servlet,通常要单独开发程序,这种程序一般称为服务器小程序容器(ServletContainer),有时也叫做服务器小程序引擎(ServletEngine)。
它是Web服务器或应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,解码基于MIME的请求,格式化基于MIME的响应,它在Servlet的生命周期内包容和管理Servlet,是一个实时运行的外壳程序。
运行时由Web服务器软件处理一般请求,并把Servlet调用传递给“容器”来处理。
Tomcat就是满足这种需要的JSP/Servlet引擎,是Sun公司的JSP/Servlet的官方实现。
按照工作模式的不同,Servlet容器可以分为以下3类:
1.独立运行的Servlet容器
在这种模式下,Servlet容器作为构成Web服务器的一部分而存在。
当使用基于Java的Web服务器时,就属于这种情况。
这种方式是Tomcat的默认模式,然而大多数Web服务器并不是基于Java的,所以就产生了下面的两种其他类型。
2.内置的Servlet容器
Servlet容器由Web服务器插件和Java容器两部分组成。
采用这种方式时,Web服务器插件需要在某个Web服务器内部地址空间中打开一个JVM(Java虚拟机),在此JVM上加载Java容器并运行Servlet。
如果客户端调用Servlet,Web服务器插件首先获得此请求的控制并将它传递(使用JNI技术)给Java容器,然后Java容器把此请求交给Servlet来处理。
这种方式运行速度较快,并且能够提供良好的性能,适用于单进程、多线程服务器,但是在伸缩性方面存在不足。
3.外置的Servlet容器
采用这种方式时,Servlet容器运行在Web服务器外部地址空间。
先由Web服务器插件在某个Web服务器外部地址空间打开一个JVM(Java虚拟机),然后加载Java容器来运行Servlet。
Web服务器插件和JVM之间使用IPC(进程间通信)机制(通常是TCP/IPSockets)。
如果客户端调用Servlet,Web服务器插件首先获得此请求的控制并将它传递(使用IPCs技术)给Java容器,然后Java容器把此请求交给Servlet来处理。
这种方式对客户端请求的处理速度不如内置Servlet那样快,但是在其他方面(如可伸缩性、稳定性等)具有优势。
Tomcat属于Servlet容器,其工作模式也分为上述3种,所以Tomcat既可被用作独立运行的Servlet引擎(便于开发和调试),又可作为一个需要增强功能的Web服务器(如当前的Apache、IIS和Netscape服务器)插件。
在配置Tomcat之前,就需要确定采用哪种工作模式,工作模式
(1)比较简单,直接安装Tomcat即可,工作模式
(2)和(3)有些复杂,除了安装Tomcat、Web服务器之外,还需要安装连接两者的中间连接件。
【专家提示】在本书中,如果没有特殊说明,Tomcat运行都采用独立运行的Servlet容器方式。
JavaServletAPI是Servlet容器和Servlet之间的接口,它定义了Servlet的各种方法,还定义了Servlet容器传送给Servlet的对象类,其中最重要的是请求对象ServletRequest和响应对象ServletResponse。
这两个对象都是由Servlet容器在客户端调用Servlet时产生的,Servlet容器把客户请求信息封装在ServletRequest对象中,然后把这两个对象都传送给要调用的Servlet,Servlet处理完后把响应结果写入ServletResponse,然后由Servlet容器把响应结果发送到客户端。
Tomcat服务器接收客户端请求并作出响应的完整过程如图1-1所示。
图1-1Tomcat服务器响应客户请求过程
其中,①处表示Web服务器接收到客户端发出的HTTP请求后,转发给Servlet容器,同时把控制返回Servlet容器;
②处表示Servlet容器把响应对象ServletResponse中的处理结果转发给Web服务器,通知Web服务器以HTTP响应的方式把结果发送到客户端,同时把控制返回Web服务器。
1.1.3Tomcat层次结构
Tomcat服务器由一系列可配置组件构成,其中核心组件是CatalinaServlet容器,它是其他所有Tomcat组件的顶层容器。
Tomcat各组件之间存在的层次关系如图1-2所示。
图1-2Tomcat层次关系
【专家提示】Tomcat的组件可以在<
TOMCAT_HOME>
\conf\server.xml文件中进行配置,每个Tomcat组件在server.xml文件中对应一种配置元素。
在XML文件的代码中,这些组件之间关系如下所示:
<
Server>
<
Service>
<
Connector/>
Engine>
<
Host>
<
Context>
/Context>
/Host>
/Engine>
/Service>
/Server>
上述各组件将Tomcat分成若干层(Server层、Service层、Engine层、Host层、Context层),各层通过数据管道PipeLine交互,如图1-3所示。
上述各层对应组件及其在Tomcat服务器中的作用如下:
(1)Server层
对应Server组件,逻辑上表示整个Tomcat,即整个CatalinaServlet容器。
它处于Tomcat顶层,可以包含一个或多个Service层。
Tomcat提供了该层接口的一个默认实现,所以通常不需要用户自己去实现。
图1-3Tomcat的层次结构
(2)Service层
对应Service组件,是包含在Server层中的一个逻辑功能层。
它包含一个Engine层,以及一个或多个连接器(Connector)。
Service组件将一个或多个Connector组件绑定到Engine层上,Connector组件侦听端口,获得用户请求,并将请求交给Engine层处理,同时把处理结果发给用户,从而实现一个特定的实际功能。
Tomcat提供了Service接口的默认实现,所以通常也不需要用户定制。
(3)Engine层
对应Engine组件,该层是请求分发处理层,可以连接多个Connector。
它从Connector接收请求后,解析出可以完成用户请求的URL,根据该URL可以把请求匹配到正确的Host上,当Host处理完用户请求后,Engine层把结果返回给适合的连接器,再由连接器传输给用户。
该层的接口一般不需要用户来定制,特殊情况下,用户可以通过实现该接口来提供自定义的引擎。
(4)Host层
对应Host组件,该层表示一个虚拟主机,一个Engine层可以包含多个Host层,每个Host层可以包含一个或多个Context层,对应不同的Web应用。
因为Tomcat给出的Host接口的实现(类StandardHost)提供了重要的附加功能,所以用户通常不需要定制Host。
(5)Context层
对应Context组件,该层代表某个虚拟主机上的实际目录或一个WAR,即单个Web应用程序,它运行在特定的虚拟主机中,使用最为频繁。
一个Host层包含多个Context层,每一个Context都有唯一的路径,Host层接到请求后,根据用户请求的URL,将请求定位到Context层。
1.1.4JavaWeb应用处理
充当JavaWeb的容器是Tomcat服务器最主要的功能。
JavaWeb在Sun的JavaServlet规范中定义如下:
JavaWeb应用由一组Servlet、HTML页、类,以及其他可以被绑定的资源构成。
它可以在各种供应商提供的实现Servlet规范的Web应用容器中运行。
由此定义可知,在Java
Web应用中可以包含Servlet、JSP、类、静态文档和配置信息等。
每个Web应用都对应唯一的Context,Servlet容器为每个运行的JavaWeb应用创建唯一的ServletContext对象,该对象被同一个Web应用中的所有组件所共享。
假设有3个Web应用,分别为HelloWorld、Counter和TableList,它们对应的主页URL分别如下:
HelloWorld:
http:
//localhost1:
8080/HelloWorld/index.html
Counter:
80/Counter/index.jsp
TableList:
//localhost2:
8086/TableList/index.jsp
3个用户分别访问上述3个地址,则Tomcat服务器各个组件响应用户请求的过程如图1-4所示,其中每个Context容器对应唯一的JavaWeb应用。
图1-4Tomcat服务器各组件响应用户请求过程
1.1.5Tomcat发展
随着Sun公司发布的Servlet/JSP规范不断完善和升级,Tomcat的版本也逐步更新。
Tomcat版本和Servlet/JSP规范之间的对应关系如表1-1所示。
表1-1Tomcat版本和Servlet/JSP规范
Tomcat版本
Servlet/JSP规范
6.0.14
2.5/2.1
5.5.x
2.4/2.0
4.1.27
2.3/1/2
其中,Tomcat目前的最新版本是Tomcat6.0.14,它支持最新的J2SE标准、执行效率高、使用方便、发展前景良好,所以本书围绕Tomcat6.0.14展开讲述。
1.2Tomcat的安装
本节将介绍Tomcat工作环境的安装、基本的启动与停止方法、JDK的安装与JVM性能调整、二进制版本的Tomcat安装以及从源代码安装Tomcat,最后讲解如何启动、停止和自动启动Tomcat,并进行安装的测试。
1.2.1安装准备
在安装Tomcat之前必须先安装JDK。
JDK的全称是JavaDevelopmentKit,是Sun公司免费提供的Java语言的软件开发工具包,其中包含Java虚拟机(JVM)。
编写好的Java源程序经过编译可形成Java字节码,只要安装了JDK,就可以利用JVM解释这些字节码文件,从而保证了Java的跨平台性。
在平台兼容性方面,JDK作为解释字节码文件并据此调用操作系统API实现对应功能的Java虚拟机,与操作系统类型和平台位数密切相关,因此存在不同类型的版本,而Tomcat也具有上述特征,所以需要预先下载JDK和Tomcat,这两个软件的版本和下载地址如下:
JDK选择Sun官方网站提供的JDK-6U1,下载网址为EComActionServlet;
jsessionid=6C6B460AC2EF83F7FF253E51D5B5BA1C。
用户访问上述网址需要注册,注册后就可以根据自己的计算机平台配置选择合适版本。
如果使用32位Windows系统,那么选择下载:
WindowsOfflineInstallation(build06),Multi-language
jdk-6u2-windows-i586-p.exe
如果使用32位Linux系统,那么选择下载:
LinuxRPMinself-extractingfile(build05)
jdk-6u2-linux-i586-rpm.bin
如果使用64位Windows系统,那么选择下载:
Windowsx64executable(build05)
jdk-6u2-windows-amd64.exe
如果使用64位Linux系统,那么选择下载:
Linuxx64RPMinself-extractingfile(build05)
jdk-6u2-linux-amd64-rpm.bin
Tomcat选择apache-tomcat6.0.14,下载网址为http:
//tomcat.apache.org/download-60.cgi。
在如图1-5所示的下载页面中,BinaryDistributions(二进制发行版)下方有若干组下载项,每组下载项有两个不同的版本对应不同的操作系统,其中zip是Windows平台下运行版本,tar.gz是Linux平台下运行版本。
其中Core组和AdministrationWebApplication组必须下载,这两组分别对应Tomcat核心安装包和控制平台包,其他组内容可以根据需要来决定是否下载。
图1-5Tomcat下载页面
本书内容都基于32位Windows系统,所以JDK选择jdk-6u1-windows-i586-p.exe,Tomcat选择apache-tomcat6.0.14.zip和apache-tomcat6.0.14-admin.zip。
对于Windows操作系统,tomcat6.0.14提供了两种安装文件,一个文件为apache-tomcat6.0.14.exe,另一个文件为apache-tomcat6.0.14.zip。
apache-tomcat6.0.14.exe是可运行的安装程序,读者只需要双击这个文件,即可开始安装Tomcat。
在安装过程中,安装程序会自动搜寻JDK和JRE的位置,并把Tomcat服务加入到Windows操作系统的服务中,同时在“开始”→“程序”菜单中加入Tomcat服务器管理菜单。
apache-tomcat6.0.14.zip是一个压缩包,只需要把它解压到本地硬盘即可,这种方式既适合Windows系统下的安装,也适用于其他操作系统,例如Linux系统,所以下面主要介绍apache-tomcat6.0.14.zip的安装与Tomcat运行环境的设置。
1.2.2JDK安装及设置
(1)双击jdk-6u1-windows-i586-p.exe,弹出如图1-6所示界面。
单击“接受”按钮进入下一步。
图1-6执行安装程序
(2)选择安装内容及路径,如图1-7所示。
其中,中间列表是要安装的可选功能,单击每个可选功能左边的按钮,将弹出下拉菜单,其选项内容包括“此功能将安装在本地硬盘驱动器上”、“此功能及所有子功能将安装在本地硬盘驱动器上”、“现在不安装此功能”和“此功能将不可用”,系统默认均为第一个选项。
(3)安装JRE,如图1-8所示。
图1-7选择安装内容及路径图1-8设置JRE安装内容及路径
【专家提示】系统默认安装路径是C:
\Program
Files\Java\jdk1.6.0_02\,若想安装到其他路径,可单击右边的“更改(A)…”按钮,选择其他安装路径。
建议将JDK安装在C盘根目录下,即JDK的安装目录是C:
\jdk1.6.0_02\。
设置好安装内容及路径后,单击“下一步(N)”按钮,即在选择的安装路径下开始安装所选的内容。
JRE是JavaRuntimeEnvironment的缩写,是Java运行环境,即Java平台。
和第二步界面相似,中间列表是要安装的可选功能,系统默认的都是第一个选项。
下面是系统安装路径,默认是C:
\ProgramFiles\Java\jre1.6.0_02\,若想安装到其他路径,可单击右边的按钮,选择其他安装路径,JRE按照默认路径安装即可。
设置好安装内容及路径后,单击“下一步(N)”按钮,即可在选择的安装路径下安装所选的内容。
安装完毕后弹出如图1-9所示界面,提示JDK安装完成。
图1-9安装完成
安装完成后可以发现系统存在两套JRE,一套位于<
JDK安装目录>
\jre目录下(即C:
\jdk1.6.0_02\jre),另一套位于C:
\ProgramFiles\Java\jre1.6.0_02目录下,后面这套比前面那套少了Server端的JVM,把前面那套Server端的JVM复制过来后两者效果一样。
其实,在上述步骤中的第二步,已经安装了JDK和JRE(第一套),第三步安装的是第二套JRE。
安装两套JRE的原因是:
JDK是基于DOS界面的Java程序集成开发环境,而JRE是Java程序运行的必备平台,即所谓的JVM。
安装两套JRE,就是在机器上安装了两个JVM,它们都可以运行Java程序。
Java应用程序可以分为两种,一种是JDK目录中的应用程序,另一种是根据各种应用需要开发的一般Java程序。
它们执行时分别使用不同的JRE,可以减少搜索时间,利用JRE并行运行的特点来提高程序执行速度,所以C:
\jdk1.6.0_02\jre下的JRE运行JDK目录中的应用程序,而C:
\ProgramFiles\Java\jre1.6.0_02下的JRE运行一般Java应用程序。
安装完成后需要重新启动计算机,然后设置环境变量,步骤如下:
(1)右击“我的电脑”,在弹出的快捷菜单中选择“属性”命令,打开“系统属性”对话框,选择“高级”选项卡,单击“环境变量”按钮,打开“环境变量”对话框,如图1-10所示。
(2)单击“系统变量”选项区域中的“新建”按钮,打开“新建系统变量”对话框,变量名设置为JAVA_HOME,变量值设置为C:
\jdk1.6.0_02,如图1-11所示,此变量值为JDK安装目录所在位置。
图1-10“环境变量”对话框图1-11“新建系统变量”对话框
(3)再新建一个系统变量,变量名设置为classpath,变量值设置为;
C:
\jdk1.6.0_02\lib;
C:
\jdk1.6.0_02\lib\tools.jar,此变量值表示搜索Java类的路径,该路径中包含一些Jar归档文件或者相应的目录,Java程序执行时往往会从classpath中选择并添加自己需要的类路径。
设置时需要注意,变量值最前面的“.”表示当前路径,不可以省略,不同值之间用“;
”隔开。
(4)选中“系统变量”面板中的Path变量,然后单击“编辑”按钮,在弹出的“编辑系统变量”对话框中,在变量值的最后添加;
\jdk1.6.0_02\bin,此变量设置一些常用目录,该目录中的文件在任何地方都可以直接访问,从而免去了在不同目录间反复切换的麻烦。
【专家提示】为了检验环境变量设置是否成功,可以采用下面的方法:
选择“开始”→“运行”命令,输入cmd,进入DOS界面,然后在其中运行java和javac这两个命令,如果输出对应的帮助信息,则表明环境变量已经设置成功。
1.2.3Tomcat安装及设置
把Tomcat压缩文件apache-tomcat-6.0.14.zip中的内容解压缩到C:
\apache-tomcat-6.0.14下,然后按照1.2.2节中增加系统变量的方法增加系统变量。
变量名:
TOMCAT_HOME;
变量值:
\apache-tomcat-6.0.1