Tomcat安装与配置

来源:互联网 发布:北京东方怡达网络招聘 编辑:程序博客网 时间:2024/05/21 04:22

1.下载网址

http://tomcat.apache.org/download-70.cgi

2.文件目录层次结构

解压下载的tomcat  zip文件目录层次结构

3.各目录的用途

目 录

用 途

/bin

存放启动和关闭Tomcat的脚本文件

/common/lib

存放Tomcat服务器及所有Web应用程序都可以访问的JAR文件

/conf

存放Tomcat服务器的各种配置文件,其中包括server.xml(Tomcat的主要配置文件)、tomcat-users.xml和web.xml等配置文件

/logs

存放Tomcat的日志文件

/server/lib

存放Tomcat服务器运行所需的各种JAR文件

/server/webapps

存放Tomcat的两个Web应用程序:admin应用程序和manager应用程序

/shared/lib

存放所有Web应用程序都可以访问的JAR文件

/temp

存放Tomcat运行时产生的临时文件

/webapps

当发布Web应用程序时,通常把Web应用程序的目录及文件放到这个目录下

/work

Tomcat将JSP生成的Servlet源文件和字节码文件放到这个目录下

/common/lib目录、/server/lib和/shared/lib目录下都可以存放JAR文件,它们的区别在于:

— 在/server/lib

目录下的JAR文件只能被Tomcat服务器访问;

— 在/shared/lib

目录下的JAR文件可以被所有的Web应用程序访问,但不能被Tomcat服务器访问;

— 在/common/lib

目录下的JAR文件可以被Tomcat服务器和所有的Web应用程序访问。

此外,对于后面将要介绍的JavaWeb应用程序,在它的WEB-INF目录下,也可以建立lib子目录,在lib子目录下可以存放各种JAR文件,这些JAR文件只能被当前Web应用程序所访问。

4.运行Tomcat

在Tomcat安装目录下的bin子目录中,有一些批处理文件(以.bat作为后缀名的文件),其中的startup.bat就是启动Tomcat的脚本文件,用鼠标双击这个文件

注:JAVA_HOME环境变量一定要配置好,如果没有配置将会报错:

如果环境变量已经配置好,再次双击将会提示:

打开浏览器,在地址栏中输入http://localhost:8080/(localhost表示本地机器,8080是Tomcat默认监听的端口号)

 

 

1、单击Tomcat Documentation将进入Tomcat的文档页面,有关Tomcat的帮助信息可以在文档页面中找到;

2、童鞋也可以直接访问Tomcat的文档,文档首页的位置是Tomcat安装目录下的webapps\tomcat-docs\index.html。

3、如果要关闭Tomcat服务器,可以用鼠标双击\bin目录下的shutdown.bat文件。

4、如果你机器上的Tomcat启动失败,有可能是因为TCP的8080端口被其他应用程序所占用,如果你知道是哪一个应用程序占用了8080端口,那么先关闭此程序。

5、如果你不知道或者不想关闭占用8080端口的应用程序,你可以修改Tomcat默认监听的端口号。前面介绍了,Tomcat安装目录下的conf子目录用于存放Tomcat服务器的各种配置文件,其中的server.xml是Tomcat的主要配置文件,这是一个格式良好的XML文档,在这个文件中可以修改Tomcat默认监听的端口号。用UltraEdit(你可以用记事本程序或其他的文本编辑工具)打开server.xml,找到修改8080端口的地方。童鞋也许要问了,“这个配置文件,我都不熟悉,怎么知道在哪里修改端口号呢?”对于初次接触server.xml的童鞋,确实不了解这个文件的结构,但是我们应该有一种开放的思路,既然Tomcat的监听端口号是在server.xml中配置,那么只要我们在这个文件中查找“8080”这些数字字符序列,不就能找到修改端口号的地方了吗!在UltraEdit中,同时按下键盘上的“Ctrl”和“F”键,出现如图5-10所示的查找对话框。

server.xml中配置端口号的位置


如果不能定处处就是改端口的地方可以修改后打开Localhost试试是否修改正确,记住,学习要不断探索。

5.Tomcat启动分析

用文本编辑工具打开用于启动Tomcat的批处理文件startup.bat,仔细阅读,可以发现,在这个文件中,首先判断CATALINA_HOME环境变量是否为空,

如果为空,就将当前目录设为CATALINA_HOME的值,接着判断当前目录下是否存在bin\catalina.bat,

如果文件不存在,将当前目录的父目录设为CATALINA_HOME的值,根据笔者机器上Tomcat安装目录的层次结构,最后CATALINA_HOME的值被设为Tomcat的安装目录。

如果环境变量CATALINA_HOME已经存在,则通过这个环境变量调用bin目录下的“catalina.bat start”命令。通过这段分析,我们了解到两个信息:

一是Tomcat启动时,需要查找CATALINA_HOME这个环境变量,如果在当前目录下调用startup.bat,Tomcat会自动设置CATALINA_HOME;

二是执行startup.bat命令,实际上执行的是“catalina.bat start”命令。

如果我们不是在bin目录作为当前目录时调用startup.bat,就会出现如图5-12所示的错误信息(在bin目录的父目录下调用除外)。


要在其他目录下也能启动Tomcat,就需要设置CATALINA_HOME环境变量,你可以将CATALINA_HOME添加到Windows 2000系统的环境变量中,其值就是Tomcat的安装目录

提示:在Windows系统下环境变量的名字是与大小写无关的,也就是说JAVA_HOME和java_home是相同的。

 

catalina.bat文件

了解了startup.bat文件以后,我们再来看看真正负责启动Tomcat服务器的catalina.bat文件。

通过分析catalina.bat文件,我们发现它还调用了一个文件setclasspath.bat。在setclasspath.bat文件中,它检查JAVA_HOME环境变量是否存在,并通过设置的环境变量JAVA_HOME,找到java.exe,用于启动Tomcat。

在这个文件中,还设置了其他的一些变量,分别表示JDK中的一些工具,有兴趣的童鞋可以自行分析一下这个文件。在执行完setclasspath.bat之后,catalina.bat剩下的部分就开始了Tomcat服务器的启动进程。

直接执行catalina.bat时,需要带上命令行的参数。你可以在命令提示符窗口下,执行catalina.bat,就会打印出catalina.bat命令的各种参数及其含义

其中常用的参数是start、run和stop,

参数start表示在一个单独的窗口中启动Tomcat服务器;

参数run表示在当前窗口中启动Tomcat服务器;

参数stop表示关闭Tomcat服务器;

执行startup.bat,实际上执行的就是“catalina.bat start”命令;

执行shutdown.bat,实际上执行的是“catalina.bat stop”命令。

“catalina.bat run”命令有时候是非常有用的,特别是当我们需要查看Tomcat的出错信息时。我们在开发JSP程序时,经常会碰到自己机器上的8080端口号被别的应用程序占用,或者在配置server.xml时出现错误,当通过startup.bat(相当于执行“catalina.bat start”)启动Tomcat服务器时,会导致启动失败,因为是在单独的窗口中启动Tomcat服务器,所以一旦启动失败,命令提示符窗口就自动关闭了,程序运行中输出的出错信息也随之消失,而且没有任何的日志信息,这就使得我们没有办法找出错误原因。

当出现错误时,我们可以换成“catalina.bat run”命令再次启动,一旦启动失败,仅仅是Tomcat服务器异常终止,但是在当前的命令提示符窗口下仍然保留了启动时的出错信息,这样我们就可以查找启动失败的原因了。

6.Tomcat的体系结构

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

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

(1)Server

Server表示整个的CatalinaServlet容器。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

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

通过图5来帮助我们更好地理解Tomcat服务器中各组件的工作流程。


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

%CATALINA_HOME%\webapps\tomcat-docs\architecture\index.html

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

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


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

 

 

Struts下载地址

http://struts.apache.org/download.cgi

 

 

 


—— —— —— EOF —— —— ——

作者: 毕小朋| http://blog.csdn.net/wirelessqa
邮箱: wirelessqa.me@gmail.com
微博: http://weibo.com/wirelessqa  
转载请注明来源: 毕小朋 — http://blog.csdn.net/wirelessqa


原创粉丝点击