Jakarta-Tomcat 简明中文版用户指南
| (此文来自 http://web.domaindlx.com/cyberz/ctomcat1.htm )
本文档提供关于Tomcat的基础信息.主要内容如下:
Getting Started Tomcat是一个带有jsp环境的servlet容器.servlet容器是一个根据用户的行为可以管理和激活servlet的运行时的shell.
独立的servlet容器 内置有web服务器的一部分.指当使用基于Java的web服务器的情形,例如servlet容器是JavaWebServer的一个部分. 独立的servlet容器是Tomcat的默认模式. 大多数的web服务器并非基于Java,因此,我们可以得出如下两种容器的模式.
servlet容器作为web服务器的插件和Java容器的实现.Web服务器插件在内部地址空间打开一个JVM(java virtual machine)使Java容器得以在内部运行.如有某个需要调用servlet的请求,,插件将取得对此请求的控制并将他传递(使用JNI)给Java容器.进程内容器对于多线程,单进程的服务器非常合适并且提供很好的运行速度,但伸缩性有所不足.
servlet容器运行于web服务器之外的地址空间且作为web服务器的插件和Java容器的实现的结合.web服务器插件和Java容器 JVM使用IPC机制(通常是TCP/IP)进行通讯.当一个调用servlet的请求到达时,插件将取得对此请求的控制并将其传递(使用IPC等)给Java容器,进程外容器的反应时间或进程外容器引擎不如进程内容器,但进程外容器引擎在许多其他可比的范围内更好(伸缩性,稳定性等).
“set TOMCAT_HOME=foo omcat”
如是bash/sh环境, 键入:”TOMCAT_HOME=foo/tomcat;export TOMCAT_HOME” 如是tcsh环境, 键入:”setenv TOMCAT_HOME foo/tomcat”
好了!现在可以运行TOMCAT并作为一个独立的Servlet容器(模式一)
启动: uinx:bin/startup.sh win32:binstartup 关闭: unix:bin/shutdown.sh win32:binshutdown
bin 包含启动/关闭脚本 conf 包含不同的配置文件, 包括 server.xml(Tomcat的主要配置文件)和为不同的Tomcat配置的web应用设置缺省值的文件web.xml doc 包含各种Tomcat文档 lib 包含Tomcat使用的jar文件.unix平台此目录下的任何文件都被加到Tomcat的classpath中 logs Tomcat摆放日志文件的地方 src ServletAPI源文件.先别高兴,这些只有些必须在Servlet容器内实现的空接口和抽象类 webapps 包含web项目示例
work classes
Tomcat是一个Java程序,因此在设置好几个环境变量后即可用命令行的方式运行.然而设置Tomcat使用的每个环境变量和如下的命令行参数乏味且易错.因此,Tomcat开发组提供了一些脚本使启动和关闭Tomcat变得轻松.
主脚本.设置合适的环境变量,包括CLASSPATH,TOMCAT_HOME和JAVA_HOME和用适合的命令行参数启动Tomcat startup 在后台启动Tomcat.”tomcat start”命令的替换方式 shutdown 关闭Tomcat.”tomcat stop”命令的替换方式
在Unix下的步骤: 如未指定,推测 TOMCAT_HOME 如未指定,推测 JAVA_HOME 设置CLASS_PATH包含: 1.${TOMCAT_HOME}/classes目录(如果存在) 2.${TOMCAT_HOME}/lib的一切内容 3.${JAVA_HOME}/lib/tools.jar(此jar文件包含工具javac,我们需要javac处理jsp文件.
此Tomcat进程使用指向server.xml的路径, 例如server.xml放置于etc/server_1.xml并且用户意图在后台启动apache,键 入如下命令行: bin/tomcat.sh start –f /etc/server_1.xml 在Win32下的步骤:(略)
Tomcat的配置基于两个配置文件: 1.server.xml - Tomcat的全局配置文件 2.web.xml - 在Tomcat中配置不同的关系环境
server.xml是Tomcat的主配置文件.完成两个目标: 1 提供Tomcat组件的初始配置. 2 说明Tomcat的结构,含义,使得Tomcat通过实例化组件完成起动及构建自身, 如在server.xml所指定的 下表描述server.xml种的重要元素: 元素及其描述 Server Logger ContextManager ContextInterceptor&RequestInterceptor Connector 1.句柄类 2.句柄监听的TCP/IP端口 3.句柄服务器端口的TCP/IP的backlog. 稍后我们将在此文档中描述如何配置Connector. Context 1. Context放置的路径,可以是与ContextManager主目录相关的路径. 2.纪录调试信息的调试级别 3.可重载的标志.开发Servlet时,重载更改后的Servlet,这是一个非常便利的特性,你可以调试或用Tomcat测试新代码而不用停止或重新启动Tomcat.要打开重载,把reloadable设为真即可.这虽花费时间但可检测所发生的变化;更重要的事,鉴于,在一个装载类对象装入一个新的servlet时,类装载触发器可能会掷出一些错误.为避免这些问题,你可以设置可重载为假,这将停止重载功能.
从另一个目录中启动Tomcat 作为缺省值将使用TOMCAT_HOME/conf/server.xml作为配置文件.缺省配置将使用TOMCT_HOME作为关系环境的基础. 使用 “-f/你的/目录/server.xml”选项你可改变这种情况,使用另一个服务器配置文件和设置关系环境管理器的目录属性你需要在主目录内设置以下几个文件: Ø 一个 webapps/目录(如果你已生成) – 所有war文件奖杯界压倒此目录而且所有子目录将作为关系环境添加. Ø conf/目录 - 你可保存一个特殊的web.xml文件和其他配置文件 Ø logs/ - 所有日志文件将代替TOMCAT_HOME/logs/纪录到此目录中 Ø work/ - 关系环境的工作目录 如server.xml中的ContextManager.home属性有关联,将关联到到当前工作目录. web。xml 关于web。xml和web项目结构(包括目录服务及配置)的详细描述可在Servlet API Spec的第9,10,14章中找到。 然而有一个与Tomcat有关的小“特性“与web.xml有关。Tomcat可以让用户通过将缺省的web.xml放入conf目录中来定义所有关系环境的web.xml的缺省值.建立一个新的关系环境时,Tomcat使用缺省的web.xml文件作为基本设置和应用项目特定的web.xml(放在应用项目的WEB-INF/web.xml文件)来覆盖这些缺省值. 设置Tomcat与Apache Web 服务器 服务器 到现在为止,我们未讨论作为服务器扩展的Tomcat,只讨论了作为独立运行的服务器.但有一些问题需要说明: 1. 当处理静态页面时,Tomcat不如Apache迅速. 2. Tomcat不象Apache一样可配置. 3. Tomcat不象Apache一样强壮. 4. 有很多网站已在某一特定web server上投入了很长时间,例如,使用CGI脚本/Server API模组/perl/php…我们不能假设这些遗留下来的东西都会被丢弃. 基于以上原因,一个现实的网站建议使用一个Web服务器,如Apache,为网站的静态页面请求提供服务,并使用Tomcat作为一个Servlet/JSP插件. 我们不准备深入的讨论每个不同的配置,我们将: 1. 涵盖Web服务器的基本行为 2. 解释需要何种配置 3. 在Apache上的实例
载入servlet容器接口库并初始化(处理请求之前)。 当收到一个请求时,检查是否属于某Servlet,如是,则接口库接收此请求并处理。 另一方面,接口库需要知道他将服务某种请求,通常是基于请求的URL的某种模式和将此请求导向何处。 当用户想要设置使用虚拟主机的配置时,事情会变得更加复杂,或者想多个开发者在一个服务器上进行开发但使用不同的Servlet容器的JVMs。以下我们将讨论这两个问题。
l 考虑到Tomcat进程是否可取得,我们仍需提供配置和Tomcat正在监听的TCP/IP 主机名/端口号。 l 需要告知web服务器接口库的位置(因此我们可以在起始时装入) l 需要设置接口内部信息如将日志记录在何处和如何纪录,等等。 所有此类信息必须出现在web服务器配置里或被接口使用的私有配置文件中。下面将讲述如何在Apache中如何实现这些配置。
这一部分演示如何配置Apache与Tomcat一起工作;并试图解释深入到可能会用到的配置规范。在jserv 安装页上可找到其他信息
|

