Tomcat详细教程Word格式文档下载.docx
《Tomcat详细教程Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Tomcat详细教程Word格式文档下载.docx(97页珍藏版)》请在冰豆网上搜索。
TOMCAT_HOME>
\conf\server.xml文件中配置的,TOMCAT服务器默认情况下对各种组件都有默认的实现,下面通过分析server.xml文件来理解TOMCAT的各个组件是如何组织的。
<
Server>
顶层元素,代表一个服务器
<
Service>
顶层元素,是Connector的集合,只有一个Engine
<
Connectior/>
连接器类元素,代表通信接口
<
Engine>
容器类元素,为特定的Service组件处理所有客户请求,可包含多个Host
<
Host>
为特定的虚拟主机处理所有客户请求
<
Context>
为特定的WEB应用处理所有客户请求
/Context>
/Host>
/Engine>
/Service>
/Server>
TOMCAT中真正处理客户请求与生成响应的三个组件是Engine、Host、Context
2、Tomcat5.0包含三个主要的部分
包括:
*Catalina-一个符合ServletAPI规范2.3的ServletContainer
*Jasper-一个符合JSP规范1.2的JSP编译器和运行环境
*Webapps-Tomcat中包含的一些例子和用于测试的web例程,以及相关文档。
3、应用服务器(如WebLogic)与Tomcat有何区别。
应用服务器提供更多的J2EE特征,如EJB,JMS,JAAS等,同时也支持Jsp和Servlet。
而Tomcat则功能没有那么强大,它不提供EJB等支持。
但如果与JBoss(一个开源的应用服务器)集成到一块,则可以实现J2EE的全部功能。
4、Tomcat目录的结构
(1)Tomcat的安装
其实对于完全由Java写成的Tomcat,Win32版本和Linux版本没有多大区别,比如Linux版本,在Solaris下也没有问题。
这里,主要以Win32版本作为示例。
在安装使用Tomcat之前,先安装JDK,最好是Sun的JDK1.2以上版。
(2)Tomcat的目录结构
首先,下载jakarta-tomcat.zip包,解压缩到一个目录下,如:
“c:
\tomcat”。
这时,会得到如下的Tomcat的目录结构:
---jakarta-tomcat
|---binTomcat执行脚本目录
|---Common放置一些通用类(如JDBC的驱动程序等)
|---confTomcat配置文件
|---docTomcat文档
|---libTomcat运行需要的库文件(JARS)
|---logsTomcat执行时的LOG文件
|---srcTomcat的源代码
|---webappsTomcat的主要Web发布目录(存放我们自己的JSP,SERVLET,类)
|---workTomcat的工作目录,Tomcat将翻译JSP文件到的Java文件和class文件放在这里。
目录名
该目录内的文件的一般功能描述
bin
包含有Startup.bat(启动服务器)与shutdown.bat(关闭服务器)文件
conf
包含设置部署在Tomcat上的Web应用的变量的初始值的设置文件,包括server.xml(Tomcat的全局配置文件)和web.xml(为不同的Tomcat配置的web应用设置缺省值的文件)
doc
包含关于Tomcat的各种各样的文档。
common
在其lib目录下,主要存放如JDBC的驱动程序等
lib
包含被Tomcat使用的各种各样的jar文件。
在UNIX上,任何这个目录中的文件将被附加到Tomcat的classpath中。
logs
Tomcat的log文件。
src
servletAPI的源文件。
webapps
包含Web应用的程序(JSP、Servlet和JavaBean等)
work
由Tomcat自动生成,这是Tomcat放置它运行期间的中间(intermediate)文件(诸如编译的JSP文件)地方。
如果当Tomcat运行时,你删除了这个目录那么将不能够执行包含JSP的页面。
(3)、各个目录下所应该存放的文件:
按照Tomcat的规范,Tomcat的Web应用程序应该由如下目录组成
⏹页面内容等文件的存放位置:
*.html,*.jsp等可以有许多目录层次,由用户的网站结构而定,实现的功能应该是网站的界面,也就是用户主要的可见部分。
除了HTML文件、JSP文件外,还有js(JavaScript)文件和css(样式表)文件以及其他多媒体文件等。
⏹Web-INF/web.xml这是一个Web应用程序的描述文件。
这个文件是一个XML文件,描述了Servlet和这个Web应用程序的其他组件信息,此外还包括一些初始化信息和安全约束等等。
⏹Web-INF/classes/这个目录及其下的子目录应该包括这个Web应用程序的所有JavaBean及Servlet等编译好的Java类文件(*.class)文件,以及没有被压缩打入JAR包的其他class文件和相关资源。
注意,在这个目录下的Java类应该按照其所属的包层次组织目录(即如果该*.class文件具有包的定义,则该*.class文件应该放在.\WEB-INF\classes\包名下)。
⏹通常Web-INF/classes/这个目录下的类文件也可以打包成JAR文件,并可以放到WEB-INF下的lib目录下。
如将classes目录下的各个*.class文件打包成WebMis.jar文件(jarcvfWebMis.jar*.*)
(1)WEB-INF目录中包含应用软件所使用的资源,但是WEB-INF却不在公共文档根目录之中。
在这个目录中所包含的文件都不能被客户机所访问。
(2)类目录中(在WEB-INF下)包含运行Web应用程序时所需的Servlets,Beans等类。
(3)lib目录(在WEB-INF下)包含有Javaarchivefiles(JARs),例如标签库或者Servlets,Beans等类的*.jar文件。
(4)如果一个类出现在JAR文件中同时也出现在类的目录中,类加载器会加载位于类目录中的那一个。
⏹common/lib/这个目录下包含了所有压缩到JAR文件中的类文件和相关文件。
比如:
第三方提供的Java库文件、JDBC驱动程序等。
✓其中msbase.jar、mssqlserver.jar、msutil.jar文件为SqlServer2000的JDBC驱动程序
✓其中servlet-api.jar和jsp-api.jar为Servlet和JSP的API所在的包
二、Tomcat的环境配置
1、启动Tomcat
在Bin目录下,有一个名为startup.bat的脚本文件,执行这个脚本文件,就可以启动Tomcat服务器,不过,在启动服务器之前,还需要进行一些设置。
●首先,设置系统的环境变量。
✓TOMCAT_HOME(或者:
CATALINA_HOME)值:
d:
\jakarta-tomcat-5.0.16(用TOMCAT_HOME指示Tomcat根目录,下面以Tomcat5.0.16版为例)。
✓JAVA_HOME值:
c:
\j2sdk1.4.0(用JAVA_HOME指示jdk1.4的安装目录)。
对于设置Windows的系统环境变量,可以打开控制面板中的“系统”程序;
在“系统环境变量”中增加两个环境变量项目JAVA_HOME(最好为大写)指向JDK的目录和TOMCAT_HOME(最好为大写)指向所安装的tomcat的目录。
2、启动和关闭Tomcat服务器
(1)启动Tomcat服务器:
执行在Bin目录下的名为startup.bat的脚本文件可以启动Tomcat服务器
现在可以运行TOMCAT并作为一个独立的Servlet容器。
(2)测试Tomcat的服务器启动与否:
可以在浏览器中输入http:
//127.0.0.1:
8080/index.jsp,是否出现如下内容。
(3)启动本站点的JSP页面:
在Tomcat中的JSP文件和JavaBean程序的存放位置
✓JSP文件放在“Webapps\站点名称”的目录下
✓自定义的JavaBean程序*.java文件(可以不需要它)及*.class类文件存放在“Webapps\站点名称\WEB-INF\classes\”目录下
因此,将*.jsp文件拷贝到“TOMCAT_HOME\Webapps\站点名称”目录下,然后输入其URL地址
(4)关闭Tomcat服务器:
执行在Bin目录下的名为shutdown.bat的脚本文件可以终止Tomcat服务器。
三、配置Tomcat服务器
1、概述
Tomcat为用户提供了一系列的配置文件来帮助用户配置自己的Tomcat,Tomcat的配置文件主要是基于XML的;
如server.xml、web.xml等,下面将详细讨论Tomcat的主要配置文件以及如何利用这些配置文件解决常见问题。
2、server.xml主配置文件
server.xml是Tomcat的主配置文件,主要完成如下两个目标:
✓提供Tomcat组件的初始配置;
✓说明Tomcat的结构,含义,使得Tomcat通过实例化组件完成起动及构建自身。
观察server.xml,可以发现其中有如下的一些元素。
(1)Server元素:
Server元素是server.xml文件的最高级别的元素,Server元素描述一个Tomcat服务器,一般来说用户不用关心这个元素。
一个Server元素一般会包括Logger和ContextManager两个元素
✓Logger:
Logger元素定义了一个日志对象,一个日志对象包含有如下属性:
1)name:
表示这个日志对象的名称。
2)path:
表示这个日志对象包含的日志内容要输出到哪一个日志文件。
3)verbosityLevel:
表示这个日志文件记录的日志的级别。
一般来说,Logger对象是对JavaServlet、JSP和Tomcat运行期事件的记录
✓ContextManager:
ContextManager定义了一组ContextInterceptors(ContextManager的事件监听器),RequestInterceptors(的事件监听器)、Contexts(Web应用程序的上下文目录)和它们的Connectors(连接器)的结构和配置。
ContextManager包含如下一些属性:
1)debug:
记录日志记录调试信息的等级。
2)home:
webapps/、conf/、logs/和所有Context的根目录信息。
这个属性的作用是从一个不同于TOMCAT_HOME的目录启动Tomcat。
3)workDir:
Tomcat工作目录。
ContextInterceptor和RequestInterceptors两者都是监听ContextManager的特定事件的拦截器。
ContextInterceptor监听Tomcat的启动和结束事件信息。
而RequestInterceptors监听用户对服务器发出的请求信息。
一般用户无需关心这些拦截器,对于开发人员需要了解这就是全局性的操作得以实现的方法
(2)Connector元素:
Connector(连接器)元素描述了一个到用户的连接,不管是直接由Tomcat到用户的浏览器还是通过一个Web服务器。
Tomcat的工作进程和由不同的用户建立的连接传来的读/写信息和请求/答复信息都是由连接器对象管理的。
对连接器对象的配置中应当包含管理类、TCP/IP端口等内容。
(3)Context元素:
每一个Context都描述了一个Tomcat的Web应用程序的目录。
这个对象包含以下属性:
1)docBase。
这是Context的目录。
可以是绝对目录也可以是基于ContextManage的根目录的相对目录。
2)path。
这是Context在Web服务时的虚拟目录位置和目录名。
3)debug。
日志记录的调试信息记录等级。
4)reloadable。
这是为了方便Servlet的开发人员而设置的,当这个属性开关打开的时候,Tomcat将检查Servlet是否被更新而决定是否自动重新载入它
3、配置实例:
打开Tomcat下的conf文件夹下的server.xml文件
(1)改变Tomcat服务器的端口号
需要使用Connector元素,Connector表示一个到用户的联接,不管是通过web服务器或直接到用户浏览器(在一个独立配置中)。
Connector负责管理Tomcat的工作线程和读/写连接到不同用户的端口的请求/响应。
Connector的配置包含如下信息:
句柄类、句柄监听的TCP/IP端口、句柄服务器端口的TCP/IP的backlog。
修改后,必须重新启动Tomcat的服务器。
可以将端口号改变为80,单要保证80端口没有被占用;
另外,也可以同时分配两个端口号,只要产生两个Connector的配置信息。
!
--Defineanon-SSLCoyoteHTTP/1.1Connectoronport8080-->
Connectorport="
8080"
maxThreads="
150"
minSpareThreads="
25"
maxSpareThreads="
75"
enableLookups="
false"
redirectPort="
8443"
acceptCount="
100"
debug="
0"
connectionTimeout="
20000"
disableUploadTimeout="
true"
/>
--Defineanon-SSLCoyoteHTTP/1.1Connectoronport8000-->
8000"
enableLookups="
(2)增加新的虚拟目录并指向物理目录
设立一个虚拟工作目录是比较简单的,只需要在server.xml文件中添加一个Context对象就可以了。
如,要在webapps\下增加一个WebMis文件夹以存放jsp页面文件,并且让用户可以使用http:
8080/WebMis虚拟目录访问,则:
需要使用Context元素,每个Context提供一个指向你放置你Web项目的Tomcat的下属目录。
每个Context包含如下配置:
●Context放置的路径,可以是与ContextManager主目录相关的路径;
●纪录调试信息的调试级别;
●可重载的标志,开发Servlet时,重载更改后的Servlet。
这是一个非常便利的特性,你可以调试或用Tomcat测试新代码而不用停止或重新启动Tomcat。
要打开重载,把reloadable设为true即可。
其中:
path="
/WebMis"
说明其相对webURL的路径,是一个虚拟的路径,如:
http:
8080/WebMis,docBase="
WebMis"
说明其相对webapps的位置,是物理存在的目录,同时需要在webapps\下增加一个WebMis物理文件夹。
(3)加入自己的日志文件
添加Logger对象就可以加入自己的日志文件,添加工作相当简单,只需要将作为示例的Logger对象复制一份,然后修改一下前面介绍的几个属性就可以了。
在设定了Logger以后,就可以在自己的Servlet中使用ServletContext.log()方法来建立自己的日志文件。
4、配置实例:
打开conf文件夹下的web.xml文件
(1)web.xml文件:
它包含了描述整个Web应用程序(Web应用程序由一整套Web文件jsp、servlet、html、jpg、gif、class等组成)的信息。
下面以一个web.xml文件为例,讲解里面的各个对象。
DOCTYPEweb-appPUBLIC"
-//SunMicrosystems,Inc.//DTDWebApplication2.2//EN"
"
web-app>
display-name>
MyWebApplication<
/display-name>
description>
在这里加入Web应用程序的描述信息<
/description>
-
下面定义了Web应用程序的初始化参数,在JSP或Servlet文件中使用下面的语句
来得到初始化参数
Stringvalue=
getServletContext().getInitParameter("
name"
);
这里可以定义任意多的初始化参数
-->
context-param>
param-name>
webmaster<
/param-name>
param-value>
myaddress@<
/param-value>
这里包含了初始化参数的描述<
/context-param>
下面的定义描述了组成这个Web应用程序的Servlet,还包含初始化参数。
在Tomcat中,也可以将放在Web-INF/classes中的Servlet直接以servlet/Servlet名访问,但是一般来说,不推荐这样使用。
而且这样的使用方法还会导致Servlet的相关资源组织的复杂性。
所以一般来说推荐将所有的Servlet在这里定义出来。
初始化参数可以在Servlet中使用如下语句来获得:
Stringvalue=getServletConfig().getInitParameter("
servlet>
servlet-name>
controller<
/servlet-name>
这里加入这个Servlet的描述<
servlet-class>
com.mycompany.mypackage.ControllerServlet<
/servlet-class>
init-param>
listOrders<
/paramName>
com.mycompany.myactions.ListOrdersAction<
/init-param>
saveCustomer<
com.mycompany.myactions.SaveCustomerAction<
服务器启动后这个Servlet加载的时间
load-on-startup>
5<
/load-on-startup>
/servlet>
graph<
这个Servlet的描述<
/de