📄 tomcat-into.htm
字号:
<html><!-- #BeginTemplate "/Templates/more.dwt" -->
<head>
<!-- #BeginEditable "doctitle" -->
<title>csdn_深入解剖Tomcat</title>
<!-- #EndEditable -->
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<STYLE type=text/css>
A:link {
COLOR: #000000; FONT-FAMILY:verdana,宋体,新宋体; TEXT-DECORATION: none
}
A:visited {
COLOR: #333399; FONT-FAMILY:verdana,宋体,新宋体; TEXT-DECORATION: none
}
A:active {
COLOR: #ff0000; FONT-FAMILY:verdana,宋体,新宋体; TEXT-DECORATION: none
}
A:hover {
COLOR: black; TEXT-DECORATION: underline
}
BODY {
COLOR: #000000; FONT-SIZE:9pt; LETTER-SPACING: normal; LINE-HEIGHT: 150%; WORD-SPACING: 2em
}
TH {
FONT-SIZE: 9pt
}
TD {
FONT-SIZE: 9pt
}
TD.page {
COLOR: #000000; FONT-SIZE:9pt; LETTER-SPACING: normal; LINE-HEIGHT: 150%; WORD-SPACING: 2em
}
TD.title {
COLOR: #000000; FONT-FAMILY:verdana,宋体,新宋体
}
TD.detail {
COLOR: #9966ff; FONT-FAMILY:verdana,宋体,新宋体
}
</STYLE>
</head>
<body bgcolor="#FFFFFF" text="#000000" >
<div align="center"></div>
<table width="700" border="0" align="center">
<tr>
<table width="700" border="1" cellpadding="1" cellspacing="0" bordercolorlight="#9898ba" bordercolordark="#000000">
</table>
<br>
<table width="700" border="0">
<tr>
<td width="20"> </td>
<td colspan="2">
<div align="center">
<h3><b><!-- #BeginEditable "5" -->
<h3><font face="Verdana, Arial, Helvetica, sans-serif" ><b>深入解剖Tomcat</b></font></h3>
<!-- #EndEditable --></b></h3>
</div>
</td>
<td width="20"> </td>
</tr>
<tr>
<td width="20"> </td>
<td colspan="2"><!-- #BeginEditable "6" --><br>
<font color="#0000FF"><b>Tomcat安装:</b></font><br>
<br>
Tomcat 是一种有JSP环境的Servlet的容器。Servlet容器是代替用户管理和调用 Servlet的运行时外壳。Servlet容器可以粗略的划分成下面几类:<br>
<br>
1. 独立的servlet容器<br>
独立的servlet容器Web服务器的一部分。当使用一个以Java为基础的Web服务器时就是这种情况, 例如是JavaWebServer的一部分的servlet容器。独立的Servlet容器是被Tomcat使用的缺省方式。<br>
然而,大多数站点服务器都不是以Java为基础的,这就把我们带领导到下一两种容器类型。 <br>
<br>
2. 集成到进程中的(In-process) servlet 容器<br>
这种servlet容器和是把Web服务器的plugin和Java容器的实现结合在一起。 Web服务器的plugin在站点服务器的地址空间的内部打开一个JVM并且让Java容器在其中运行。
如果某一个请求(Request)要求执行Servlet,那么plugin就会接管这个请求并将它传递给 Java容器(使用JNI)。这种集成到进程中的很适合多线程单一进程的服务器,而且具有很好的性能。
但是伸缩性不好。 <br>
<br>
3. 未集成到进程中的(Out-of-process) servlet 容器<br>
这一类servlet容器也是将Web服务器的plugin和JVM中运行的的Java容器的实现结合在一起, 但它是在Web服务器的外部运行的。Web服务器plugin和Java容器JVM使用某种IPC机制(通常是TCP/IP
Socket)进行通信。 如果某一个请求(Request)要求执行Servlet,那么plugin就会接管这个请求并将它(使用IPC)传递到Java容器。虽然这一类Servlet容器的反应时间比不上集成进线程的Servlet容器,但是在很多方面(可伸缩性、稳定性,等等)都要好于上一类。
<br>
Tomcat能被用作一个独立的容器(主要是用来开发和调试),或者当作一个已经存在的Web服务器 (目前支持阿帕奇,IIS和Netscape服务器)的一个附加软件(add-on)。
这意味只要你部署Tomcat你就不得不决定如何使用它;同时,如果你选择选择2或者3, 你还将需要安装Web服务器软件。<br>
将你下载的Tomcat安装文件解压缩到某个目录 (最好直接把Tomcat解压到硬盘的根目录下,这样比较容易管理和设置)。这将会创建一个叫做"tomcat"的新的子目录。下面我们都假设你把Tomcat解压到c:\tomcat中。以下为配置步骤:<br>
<br>
1. 在 Win32 系统中你应该键入: <br>
"set TOMCAT_HOME=c:\tomcat"<br>
在WinNT或者Win2000中,可以新添加一个环境变量,名字为TOMCAT_HOME,值为:c:\tomcat <br>
在 UNIX 系统中你应该键入: <br>
for bash/sh "TOMCAT_HOME=c:/tomcat ; export TOMCAT_HOME"<br>
for tcsh "setenv TOMCAT_HOME c:/tomcat" 设置环境变量 JAVA_HOME
,使其指向你的JDK所在的目录,然后将Java解释器所在的路径添加到你的Path 环境变量中。<br>
for Example: 在Win98下,键入set JAVA_HOME=C:\jdk1.3\ <br>
set PATH=c:\jdk1.3\bin;%PATH%<br>
在Win NT下,环境变量的设置应该在 控制面版>系统>环境中设置<br>
<br>
2. 综合上面,安装Tomcat,首先要解压,然后设置变量和值:TOMCAT_HOME、JAVA_HOME、PATH,在Win98环境里,可以直接把上述的语句写入autoexec.bat文件中,这样在每次启动Tomcat时,不用输入上述的命令。<br>
<font color="#0000FF"><b><br>
启动和停止Tomcat:</b></font><br>
<br>
启动Tomcat:<br>
在 UNIX 下: bin/startup.sh<br>
在 Win32下 : bin\startup<br>
停止 Tomcat: <br>
在 UNIX 下: bin/shutdown.sh<br>
在 Win32下: bin\shutdown<br>
<font color="#0000FF"><b><br>
Tomcat的目录结构:</b></font><br>
<br>
请参见本站(http://adionline.myrice.com)其他文章。<b><font color="#0000FF"><br>
<br>
如何在Tomcat中添加虚拟子目录:</font></b><br>
<br>
在Tomcat中增加虚拟子目录,可以通过直接修改其配置文件:server.xml来添加。在Tomcat/conf/下,你可以找到文件server.xml,用记事本打开。你会发现以下的代码:<br>
<!-- Virtual host example - <br>
In "127.0.0.1" virtual host we'll reverse "/"
and <br>
"/examples"<br>
(XXX need a better example )<br>
(use "http://127.0.0.1/examples" )<br>
<Host name="127.0.0.1" ><br>
<Context path="" <br>
docBase="webapps/examples" /><br>
<Context path="/examples" <br>
docBase="webapps/ROOT" /><br>
</Host><br>
--><br>
这是tomcat给我们的实例,我们可以依照这种形式添加自己的虚拟子目录。例如:<br>
<host name="127.0.0.1"><br>
<context path="myjsp"<br>
docbase="webapps/myjsp"/><br>
</host><br>
然后你要在tomcat/webapps下新建一个子目录myjsp,这时候你就可以把自己的jsp文件放在目录myjsp中了,你可以通过以下方式访问你的jsp文件:http://localhost:8080/myjsp/*.jsp。
<p><br>
<font color="#0000FF"><b>进入Tomcat管理界面:</b></font><br>
<br>
在地址栏中键入:http://localhost:8080/admin,点击Context Admin便可以进入Tomcat的管理界面,不过要首先输入帐号和密码。帐号和密码在什么地方可以找到呢?我们在tomcat的安装目录下,找到子目录conf,然后在conf中可以看到一个文件叫:tomcat-users.xml,用记事本打开它。可以看到有以下的一些内容:<br>
<tomcat-users><br>
<user name="tomcat" password="tomcat" roles="tomcat"
/><br>
<user name="role1" password="tomcat" roles="role1"
/><br>
<user name="both" password="tomcat" roles="tomcat,role1"
/><br>
</tomcat-users><br>
按照上面的格式,我们可以添加一个用户和密码:<br>
<user name="rocky" password="rocky" roles="admin"
/><br>
保存文件tomcat-users.xml,然后重新启动Tomcat。注意一定要把其中的参数:roles设置为admin!这样我们就可以在要求输入帐号和密码的地方输入rocky和rocky了。然后就可以看到Tomcat的管理界面了。<br>
点击链接Snoop可以看到Request Information如下:<br>
JSP Request Method: GET <br>
Request URI: /examples/jsp/snp/snoop.jsp <br>
Request Protocol: HTTP/1.1 <br>
Servlet path: /jsp/snp/snoop.jsp <br>
Path info: null <br>
Path translated: null <br>
Query string: null <br>
Content length: -1 <br>
Content type: null <br>
Server name: localhost <br>
Server port: 8080 <br>
Remote user: null <br>
Remote address: 127.0.0.1 <br>
Remote host: 127.0.0.1 <br>
Authorization scheme: null <br>
Locale: zh_CN <br>
The browser you are using is Mozilla/4.0 (compatible; MSIE 5.5;
Windows NT 5.0; NetCaptor 6.5.0B7)<br>
<i><b><font color="#0000FF"><br>
(待续)</font></b></i><br>
<br>
<font><b> Questions:</b></font><br>
<br>
阿迪在安装和配置Tomcat的过程中,发现不少问题,比较困惑,如下:<br>
1. 启动Tomcat之后,键入:http://localhost:8080/admin,输入帐号和密码之后,可以进入Tomcat的控制台,在里面可以看到三个按钮和几个输入框。三个按钮分别是:View
All Context、Add Context、Remove Context,请问tomcat的控制台怎么用?还有,三个按钮的作用是什么?是添加虚拟子目录吗?我在修改server.xml之后,也可以添加子目录,以存放我自己的jsp文件。<br>
2. 我下载了几个版本的tomcat,有:jakarta-tomcat-3.2.3.zip、jakarta-tomcat-4.0-b1.zip、jakarta-tomcat-4.0-m5.zip……,请问这几个有什么区别吗?我想应该是版本的区别吧。不过,等我一个一个安装配置之后,发现有些有问题。有的是键入http://localhost:8080/之后回车,点击链接API
docs for Servlet and JSP Packages 看不到相应的文档,而有的是键入http://localhost:8080/admin回车,说找不到页面,看不到控制台页面,而有的可以看到,是什么原因?各位高手帮我看看,谢了!<br>
<br>
</p>
<!-- #EndEditable --></td>
<td width="20"> </td>
</tr>
<tr>
<td width="20" height="11"> </td>
<td width="541" height="11"><!-- #BeginEditable "7" --><!-- #EndEditable --></td>
<td width="101" height="11">
</td>
<td width="20" height="11"> </td>
</tr>
</table><div align="center"> <br>
</div>
</td>
</tr>
</table>
<div align="center">
<br>
</div>
</body>
<!-- #EndTemplate --></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -