Tomcat详细教程.docx

上传人:b****5 文档编号:6849992 上传时间:2023-01-11 格式:DOCX 页数:97 大小:1.80MB
下载 相关 举报
Tomcat详细教程.docx_第1页
第1页 / 共97页
Tomcat详细教程.docx_第2页
第2页 / 共97页
Tomcat详细教程.docx_第3页
第3页 / 共97页
Tomcat详细教程.docx_第4页
第4页 / 共97页
Tomcat详细教程.docx_第5页
第5页 / 共97页
点击查看更多>>
下载资源
资源描述

Tomcat详细教程.docx

《Tomcat详细教程.docx》由会员分享,可在线阅读,更多相关《Tomcat详细教程.docx(97页珍藏版)》请在冰豆网上搜索。

Tomcat详细教程.docx

Tomcat详细教程

第1章Tomcat概述

 

一、Tomcat简介

TOMCAT是APACHEJAKARTA软件组织的一个子项目,TOMCAT是一个JSP/SERVLET容器,它是在SUN公司的JSWDK(JAVASERVERWEBDEVELOPMENTKIT)基础上发展起来的一个JSP和SERVLET规范的标准实现,使用TOMCAT可以体验JSP和SERVLET的最新规范。

经过多年的发展,TOMCAT不仅是JSP和SERVLET规范的标准实现,而且具备了很多商业JAVASERVLET容器的特性,并被一些企业用于商业用途。

 

1、Tomcat

Tomcat在严格意义上并不是一个真正的应用服务器,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些应用服务器的功能,如JNDI,数据库连接池,用户事务处理等等。

Tomcat是一种具有JSP环境的Servlet容器。

Servlet容器是代替用户管理和调用Servlet的运行时外壳。

1.1SERVLET容器

负责处理客户请求。

当客户请求来到时,SERVLET容器获取请求,然后调用某个SERVLET,并把SERVLET的执行结果返回给客户。

当客户请求某个资源时,SERVLET容器使用SERVLETREQUEST对象把客户的请求信息封装起来,然后调用JAVASERVLETAPI中定义的SERVLET的一些生命周期方法,完成SERVLET的执行,接着把SERVLET执行的要返回给客户的结果封装到SERVLETRESPONSE对象中,最后SERVLET容器把客户的请求发送给客户,完成为客户的一次服务过程。

1.2TOMCAT的工作模式

1.2.1独立的SERVLET容器

TOMCAT的默认工作模式,作为独立的SERVLET容器,是内置在WEB服务器中的一部分,是指使用基于JAVA的WEB服务器的情形。

其他两种方式是TOMCAT与其他服务器集成的方式:

1.2.2进程内的SERVLET容器

SERVLET容器作为WEB服务器的插件和JAVA容器的实现。

WEB服务器的插件在内部地址空间打开一个JVM(JAVAVIRTUALMACHINE)使JAVA容器得以在内部运行。

如有某个需要调用SERVLET的请求,插件将取得对此请求的控制并将它传递(使用JNI)给JAVA容器。

进程内的容器对于多线程、单进程的服务器非常适合,并且提供了很好的运行速度,只是伸缩性有所不足。

注意:

JNI是JAVANATIVEINTERFACE的缩写,是JAVA本地调用接口,通过JNI,JAVA程序可以和其他语言编写的本地程序进行通信。

1.2.3进程外的SERVLET容器

SERVLET容器运行于WEB服务器之外的地址空间,并且作为WEB服务器的插件和JVM使用IPC(如TCP/IP)进行通信。

进程外容器的反应时间不如进程内的容器,但有较好的伸缩性、稳定性等性能。

IPCINTERPROCESSCOMMUNICATION(进程间通信)的简写,它是实现进程间通信的一种技术。

1.3TOMCAT的组织结构

TOMCAT是一个基于组件的服务器,它的构成组件都是可配置的,其中最外层的给件是CATALINASERVLET容器,其他的组件按照一定的格式要求配置在这个顶层容器中。

TOMCAT的各个组件是\conf\server.xml文件中配置的,TOMCAT服务器默认情况下对各种组件都有默认的实现,下面通过分析server.xml文件来理解TOMCAT的各个组件是如何组织的。

 

顶层元素,代表一个服务器

顶层元素,是Connector的集合,只有一个Engine

连接器类元素,代表通信接口

容器类元素,为特定的Service组件处理所有客户请求,可包含多个Host

为特定的虚拟主机处理所有客户请求

为特定的WEB应用处理所有客户请求

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-->

enableLookups="false"redirectPort="8443"acceptCount="100"debug="0"connectionTimeout="20000"disableUploadTimeout="true"/>

--Defineanon-SSLCoyoteHTTP/1.1Connectoronport8000-->

enableLookups="false"redirectPort="8443"acceptCount="100"debug="0"connectionTimeout="20000"disableUploadTimeout="true"/>

(2)增加新的虚拟目录并指向物理目录

设立一个虚拟工作目录是比较简单的,只需要在server.xml文件中添加一个Context对象就可以了。

如,要在webapps\下增加一个WebMis文件夹以存放jsp页面文件,并且让用户可以使用http:

//127.0.0.1:

8080/WebMis虚拟目录访问,则:

需要使用Context元素,每个Context提供一个指向你放置你Web项目的Tomcat的下属目录。

每个Context包含如下配置:

 

●Context放置的路径,可以是与ContextManager主目录相关的路径;

●纪录调试信息的调试级别;

●可重载的标志,开发Servlet时,重载更改后的Servlet。

这是一个非常便利的特性,你可以调试或用Tomcat测试新代码而不用停止或重新启动Tomcat。

要打开重载,把reloadable设为true即可。

其中:

path="/WebMis"说明其相对webURL的路径,是一个虚拟的路径,如:

http:

//127.0.0.1:

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"

"

MyWebApplication

在这里加入Web应用程序的描述信息

-

下面定义了Web应用程序的初始化参数,在JSP或Servlet文件中使用下面的语句

来得到初始化参数

Stringvalue=

getServletContext().getInitParameter("name");

这里可以定义任意多的初始化参数

-->

webmaster

myaddress@

这里包含了初始化参数的描述

-

下面的定义描述了组成这个Web应用程序的Servlet,还包含初始化参数。

在Tomcat中,也可以将放在Web-INF/classes中的Servlet直接以servlet/Servlet名访问,但是一般来说,不推荐这样使用。

而且这样的使用方法还会导致Servlet的相关资源组织的复杂性。

所以一般来说推荐将所有的Servlet在这里定义出来。

初始化参数可以在Servlet中使用如下语句来获得:

Stringvalue=getServletConfig().getInitParameter("name");

-->

controller

这里加入这个Servlet的描述

com.mycompany.mypackage.ControllerServlet

listOrders

com.mycompany.myactions.ListOrdersAction

saveCustomer

com.mycompany.myactions.SaveCustomerAction

-

服务器启动后这个Servlet加载的时间

-->

5

graph

这个Servlet的描述

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1