Servlet笔记——(1.2)Tomcat概述

1.2.1 下载安装启动

(1) 概述

Tomcat服务器由Apache提供,开源免费。由于Sun和其他公司参与到了Tomcat的开发中,所以最新的JSP/Servlet规范总是能在Tomcat中体现出来。(Tomcat7支持Servlet3.0,而Tomcat6只支持Servlet2.5!)

(2) 安装

可以到http://tomcat.apache.org/下载。Tomcat分为安装版和解压版:

安装版:一台电脑上只能安装一个Tomcat(并且会向Window操作系统中添加相应的服务– 比如“服务”设置“自启动”);

解压版:无需安装,解压即可用,解压多少份都可以,这儿我们选择解压版。把解压版Tomcat解压到一个没有中文、没有空格的路径中即可,建议路径不要太深,因为我们需要经常进入Tomcat安装目录。比如“D:\apache-tomcat-6.0.35”。

(3) 配置环境变量

在启动Tomcat之前,必须要配置环境变量:

JAVA_HOME:(注意它的值尾部不要加“;”)必须先配置JAVA_HOME,因为Tomcat启动需要使用JDK;

CATALINA_HOME:如果是安装版,那么还需要配置这个变量,该变量用来指定Tomcat的安装路径,比如:“D:\apache-tomcat-7.0.54”。

Catalina是太平洋中靠近洛杉矶的一个小岛。因为其风景秀丽而著名。最近曾被评为全美最漂亮的小岛。


Servlet笔记——(1.2)Tomcat概述


(4) 启动和关闭

- 启动:进入% CATALINA_HOME %\bin目录,找到startup.bat,双击即可。 startup.bat会调用catalina.bat,而catalina.bat会调用setclasspath.bat,setclasspath.bat会使用JAVA_HOME环境变量,所以我们必须在启动Tomcat之前把JAVA_HOME配置正确。

启动问题:

(1) 单击startup.bat后窗口一闪即消失:检查JAVA_HOME环境变量配置是否正确。

(2) 不要重复启动Tomcat。

- 关闭:进入${CATALINA_HOME }\bin目录,找到shutdown.bat,双击即可。

(5) 访问Tomcat主页http://localhost:8080.  (http://localhost:8080/ROOT/index.jsp)

(6) 配置端口号

Tomcat默认端口号是8080,可以在“%CATALINA_HOME%\conf\server.xml”文件中改变它:

<Connector port="8080" protocol="HTTP/1.1"   connectionTimeout="20000"  redirectPort="8443" />

HTTP默认端口号为80,也就是说URL不给出端口号时就表示使用80端口。当然你也可以修改为其他端口号。当把端口号修改为80时,在浏览器中只需要输入:http://localhost就可以访问Tomcat的主页了。

(7) 目录结构

bin:该目录下存放的是二进制可执行文件,如果是安装版的,那么这个目录下会有两个“.exe”文件:tomcat7.exe和tomcat7w.exe,前者是控制台下启动Tomcat,后者是弹出GUI窗口启动Tomcat;如果是解压版,那么会有startup.bat和shutdown.bat文件,startup.bat用来启动Tomcat,但需要先配置JAVA_HOME环境变量才能启动,shutdown.bat用来停止Tomcat。

conf:这个目录下有四个非常重要的配置文件:

server.xml :配置整个服务器信息。例如修改端口号、添加虚拟主机等

context.xml:对所有应用的统一配置,一般我们不会去配置它

web.xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档类型是“text/html”,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了,当然是在浏览器中显示这个html文件。但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。一句话,MIME及时用来数目文档的内容是什么类型的。

tomcatuser.xml: 存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了。

lib:Tomcat的类库,里面是一大堆jar文件。如果需要添加Tomcat依赖的jar包,可以把它放到这个目录中,当然也可以把应用依赖的jar放到这个文件夹中,lib下的jar所有项目都可以共享(建议只把Tomcat需要的jar包放到这个目录下);

logs:这个目录中都是日志文件,记录了Tomcat启动和关闭的信息。如果启动Tomcat时有错误,那么异常也会记录在日志文件中。

temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除。

webapps:存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是Tomcat自带的项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。比如:http://localhost:8080/examples,进入示例项目。其中examples就是项目名,即文件夹的名字。

work:运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的!可以把这个目录下的内容删除,再次运行时会再次生成work目录。当客户端用户访问一个JSP文件时,Tomcat会将JSP生成.java文件,然后再编译成.class文件,.java和.class文件就存放在这个目录下。

初学JAVA web开发。。

    Servlet定义的时候,我发现在${catalina.home}/conf下以及${catalina.home}/webapps/ROOT/WEB_INF下都有web.xml这个文件,我不知道到底应该把vm的sevlet定义添加到哪,于是我查阅了《Tomcat: The Definitive Guide》后终于明白了,

web.xml的文件格式定义在Servlet规范中,因此所有符合Servlet规范的Java Servlet Container都会用到它。当tomcat部署应用程序时(在**过程中,或加载应用程序后),它都会读取通用的conf/web.xml,然后再读取web应用程序中的WEB-INF/web.xml。其实根据他们的位置,我们就可以知道,conf/web.xml文件中的设定会应用于所有的web应用程序,而某些web应用程序的WEB-INF/web.xml中的设定只应用于该应用程序本身

如果没有WEB-INF/web.xml文件,tomcat会输出找不到的消息,但仍然会部署并使用web应用程序,servlet规范的作者想要实现一种能迅速并简易设定新范围的方法,以用作测试,因此,这个web.xml并不是必要的,不过通常最好还是让每一个上线的web应用程序都有一个自己的WEB-INF/web.xml,即使它只用做识别,但我想这是一个好的习惯。