1.2 Tomcat使用和配置
Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱,并得到了软件开发商的广泛认可,成为目前比较流行的Web应用服务器。
1.2.1 Tomcat简介
Tomcat是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。可以这样认为,在一台机器上配置好Apache服务器后,可利用它响应对HTML静态页面的访问请求,而Tomcat部分是对Apache服务器的扩展,用来处理非静态的Servlet/JSP请求,它实际上是作为一个独立于Apache的进程单独运行的。
当正确配置时,Apache为HTML静态页面服务,而Tomcat实际上运行JSP页面和Servlet。Tomcat和IIS、Apache等Web服务器一样,也具有处理HTML静态页面的功能,但Tomcat处理静态HTML页面的能力不如Apache服务器,因为它首先还是一个Servlet和JSP容器。
Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能,而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。本书采用Tomcat 7.0作为Web应用服务器,来介绍JSP、Servlet和AJAX等技术的使用。
Apache Tomcat 7.0在汲取了Tomcat 6.0优点的基础上,实现了对于Servlet 3.0、JSP 2.2和EL 2.2等特性的支持。
1.2.2 Tomcat的安装和启动
Tomcat是一个开源的项目,可以免费从Apache官方网站上下载。根据安装类型的不同,Tomcat提供了安装版本和解压缩版本,用户可以自由选择。
如果选择的是安装版本,在Tomcat安装过程中,需要进行Tomcat基础配置,配置端口号(采用默认端口号)、Windows服务名和Tomcat管理员用户名和密码,Tomcat会自动搜索计算机中的JRE,所以安装环境中必须安装JDK。安装完毕之后,通过“开始”菜单,单击Monitor Tomcat命令,在系统状态栏会出现Tomcat监视器图标,单击start service和stop service可以启动或关闭程序。
如果选择的是解压缩版本,则进入Tomcat解压缩目录的bin子目录,双击startup.bat(建议使用命令行方式执行该文件),启动Tomcat应用服务器,如图1.6、图1.7和图1.8所示。
图1.6 Tomcat启动文件
图1.7 命令行启动Tomcat
双击startup.bat之后,弹出一个如图1.8所示的命令行窗口(不能关闭该窗口,否则就关闭了Tomcat服务器),如果没有抛出异常且没有出现新弹出的窗口立刻关闭的情况,则通常来说Tomcat应用服务器正常启动。如果出现了新弹出窗口立刻关闭的情况,可以查看Tomcat目录下logs子目录中的catalina.2013-06-21.log文件(注意文件名中的日期),其中记录了Tomcat未正常启动的原因。在开发环境下,不能正常启动的最常见原因是端口号冲突,即可能已经启动的Tomcat服务器(随系统服务自动启动),占用了相关端口号。
为了进一步验证Tomcat是否正常启动,读者可以在浏览器窗口输入http://localhost:8080,如果Tomcat启动正常,则会出现如图1.9所示的Tomcat欢迎页面。
图1.8 Tomcat启动成功
图1.9 Tomcat欢迎页面
1.2.3 目录结构
● Tomcat目录结构
不论是使用安装版还是解压版,Tomcat主目录下都分别存在着若干子目录,如图1.10所示。不同的子目录里存放着不同的信息,下面简要介绍各个子目录的作用。
图1.10 Tomcat目录结构
bin:存放Windows或Linux平台上启动和关闭Tomcat的脚本文件。
conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml(Tomcat服务器配置)和web.xml(Web应用系统配置)。
lib:存放Tomcat服务器所需的各种Jar文件。
logs:存放Tomcat执行时的日志文件。
temp:Tomcat运行时用于存放临时文件。
webapps:存放Web应用的发布目录,Tomcat 7.0版本默认包含docs、examples、host-manager、manager和ROOT五个子目录,本书中编写的Web应用也需要放到该目录中。
work:存放由JSP生成的Servlet文件。
● Web应用系统目录结构
一个Tomcat应用服务器下可以包含多个Web应用系统,Tomcat是服务器,提供Web应用程序的运行环境,而Web应用系统是在Tomcat服务器上运行的应用程序,这两者的关系要加以区分。
一个符合JavaEE规范的Web应用系统也是由多个目录和文件构成的,Web应用系统的某些目录结构和文件名称必须符合规定的要求,下面进行简要的描述。
/:Web应用的根目录,该目录下的所有文件客户端都可以访问,包括HTML、JSP等。
/WEB-INF:存放应用程序的各种资源,前面提到的Web应用系统配置文件web.xml就在这个目录下,该目录及其子目录对客户端来说都是不可访问的。
/WEB-INF/classes:存放该Web应用系统的class文件。
/WEB-INF/lib:存放该Web应用使用的Jar文件。
当/WEB-INF/classes目录下的class文件和/WEB-INF/lib目录下Jar包里的class文件冲突时,Web应用系统会加载/WEB-INF/classes目录下的文件。
1.2.4 Tomcat配置
在介绍用安装版安装Tomcat时,提到过在安装过程中,会配置端口号(采用默认端口号)和Tomcat管理员用户名和密码,而如果使用的是解压缩版Tomcat,则需要自己手动更改这些Tomcat配置,接下来介绍如何手动调整这两个配置。
● 配置端口号
Tomcat修改端口号的方法很简单,打开conf目录下的server.xml文件,修改Connector节点的port属性值,如图1.11所示,保存后重新启动Tomcat,即可使用新端口号访问Tomcat应用服务器了。
图1.11 修改Tomcat端口号
● 配置管理员信息
在Tomcat 7.0中,配置管理员信息的方式和Tomcat 6.0有些不同,下面分别介绍如何在Tomcat 7.0和Tomcat 6.0上配置管理员信息。
打开conf目录下的tomcat-users.xml文件,在Tomcat 6.0的<tomcat-users>节点下添加以下配置信息:
<role rolename="admin"/> <role rolename="manager"/> <user username="admin" password="admin" roles="admin,manager"/>
在Tomcat 7.0的<tomcat-users>节点下添加以下配置信息:
<role rolename="admin-gui"/> <role rolename="manager-gui"/> <user username="admin" password="admin" roles=" admin-gui , manager-gui "/>
重新启动Tomcat 7.0,打开Tomcat欢迎页面,单击右上角的Manager App按钮,将进入Web应用系统管理页面。在进入该页面前,需要进行用户验证,如图1.12所示,正确填写用户名和密码,进入如图1.13所示的Web应用系统管理页面。
图1.12 Tomcat管理员验证
通过该页面可以看到,现在Tomcat服务器上运行着五个Web应用系统,用户可以通过单击后面的按钮,对该应用程序进行基本的操作。
图1.13 Tomcat Web应用系统管理页面