深入解剖Tomcat

来源:互联网 发布:广西广电网络网上营业厅 编辑:程序博客网 时间:2024/05/03 23:01
Tomcat安装:

Tomcat 是一种有JSP环境的Servlet的容器。Servlet容器是代替用户管理和调用 Servlet的运行时外壳。Servlet容器可以粗略的划分成下面几类:

1. 独立的servlet容器
独立的servlet容器Web服务器的一部分。当使用一个以Java为基础的Web服务器时就是这种情况, 例如是JavaWebServer的一部分的servlet容器。独立的Servlet容器是被Tomcat使用的缺省方式。
然而,大多数站点服务器都不是以Java为基础的,这就把我们带领导到下一两种容器类型。

2. 集成到进程中的(In-process) servlet 容器
这种servlet容器和是把Web服务器的plugin和Java容器的实现结合在一起。 Web服务器的plugin在站点服务器的地址空间的内部打开一个JVM并且让Java容器在其中运行。 如果某一个请求(Request)要求执行Servlet,那么plugin就会接管这个请求并将它传递给 Java容器(使用JNI)。这种集成到进程中的很适合多线程单一进程的服务器,而且具有很好的性能。 但是伸缩性不好。

3. 未集成到进程中的(Out-of-process) servlet 容器
这一类servlet容器也是将Web服务器的plugin和JVM中运行的的Java容器的实现结合在一起, 但它是在Web服务器的外部运行的。Web服务器plugin和Java容器JVM使用某种IPC机制(通常是TCP/IP Socket)进行通信。 如果某一个请求(Request)要求执行Servlet,那么plugin就会接管这个请求并将它(使用IPC)传递到Java容器。虽然这一类Servlet容器的反应时间比不上集成进线程的Servlet容器,但是在很多方面(可伸缩性、稳定性,等等)都要好于上一类。
Tomcat能被用作一个独立的容器(主要是用来开发和调试),或者当作一个已经存在的Web服务器 (目前支持阿帕奇,IIS和Netscape服务器)的一个附加软件(add-on)。 这意味只要你部署Tomcat你就不得不决定如何使用它;同时,如果你选择选择2或者3, 你还将需要安装Web服务器软件。
将你下载的Tomcat安装文件解压缩到某个目录 (最好直接把Tomcat解压到硬盘的根目录下,这样比较容易管理和设置)。这将会创建一个叫做"tomcat"的新的子目录。下面我们都假设你把Tomcat解压到c:/tomcat中。以下为配置步骤:

1. 在 Win32 系统中你应该键入:
"set TOMCAT_HOME=c:/tomcat"
在WinNT或者Win2000中,可以新添加一个环境变量,名字为TOMCAT_HOME,值为:c:/tomcat
在 UNIX 系统中你应该键入:
for bash/sh "TOMCAT_HOME=c:/tomcat ; export TOMCAT_HOME"
for tcsh "setenv TOMCAT_HOME c:/tomcat" 设置环境变量 JAVA_HOME ,使其指向你的JDK所在的目录,然后将Java解释器所在的路径添加到你的Path 环境变量中。
for Example: 在Win98下,键入set JAVA_HOME=C:/jdk1.3/
set PATH=c:/jdk1.3/bin;%PATH%
在Win NT下,环境变量的设置应该在 控制面版>系统>环境中设置

2. 综合上面,安装Tomcat,首先要解压,然后设置变量和值:TOMCAT_HOME、JAVA_HOME、PATH,在Win98环境里,可以直接把上述的语句写入autoexec.bat文件中,这样在每次启动Tomcat时,不用输入上述的命令。

启动和停止Tomcat:

启动Tomcat:
在 UNIX 下: bin/startup.sh
在 Win32下 : bin/startup
停止 Tomcat:
在 UNIX 下: bin/shutdown.sh
在 Win32下: bin/shutdown

Tomcat的目录结构:

请参见本站(http://adionline.myrice.com)其他文章。

如何在Tomcat中添加虚拟子目录:

在Tomcat中增加虚拟子目录,可以通过直接修改其配置文件:server.xml来添加。在Tomcat/conf/下,你可以找到文件server.xml,用记事本打开。你会发现以下的代码:
<!-- Virtual host example -
In "127.0.0.1" virtual host we'll reverse "/" and
"/examples"
(XXX need a better example )
(use "http://127.0.0.1/examples" )
<Host name="127.0.0.1" >
<Context path=""
docBase="webapps/examples" />
<Context path="/examples"
docBase="webapps/ROOT" />
</Host>
-->
这是tomcat给我们的实例,我们可以依照这种形式添加自己的虚拟子目录。例如:
<host name="127.0.0.1">
<context path="myjsp"
docbase="webapps/myjsp"/>
</host>
然后你要在tomcat/webapps下新建一个子目录myjsp,这时候你就可以把自己的jsp文件放在目录myjsp中了,你可以通过以下方式访问你的jsp文件:http://localhost:8080/myjsp/*.jsp。

进入Tomcat管理界面:

在地址栏中键入:http://localhost:8080/admin,点击Context Admin便可以进入Tomcat的管理界面,不过要首先输入帐号和密码。帐号和密码在什么地方可以找到呢?我们在tomcat的安装目录下,找到子目录conf,然后在conf中可以看到一个文件叫:tomcat-users.xml,用记事本打开它。可以看到有以下的一些内容:
<tomcat-users>
<user name="tomcat" password="tomcat" roles="tomcat" />
<user name="role1" password="tomcat" roles="role1" />
<user name="both" password="tomcat" roles="tomcat,role1" />
</tomcat-users>
按照上面的格式,我们可以添加一个用户和密码:
<user name="rocky" password="rocky" roles="admin" />
保存文件tomcat-users.xml,然后重新启动Tomcat。注意一定要把其中的参数:roles设置为admin!这样我们就可以在要求输入帐号和密码的地方输入rocky和rocky了。然后就可以看到Tomcat的管理界面了。
点击链接Snoop可以看到Request Information如下:
JSP Request Method: GET
Request URI: /examples/jsp/snp/snoop.jsp
Request Protocol: HTTP/1.1
Servlet path: /jsp/snp/snoop.jsp
Path info: null
Path translated: null
Query string: null
Content length: -1
Content type: null
Server name: localhost
Server port: 8080
Remote user: null
Remote address: 127.0.0.1
Remote host: 127.0.0.1
Authorization scheme: null
Locale: zh_CN
The browser you are using is Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; NetCaptor 6.5.0B7)