2.2 安装并配置Tomcat服务器
一段写出的代码,要想转换成网页,就需要一个Web应用服务器。与ASP.NET匹配的Web服务器一般首选是IIS,而与JSP匹配的首选是Tomcat,本节就介绍Tomcat服务器。
2.2.1 下载并安装Tomcat服务器
Tomcat是轻量级的Web应用服务器,可以从官网http://tomcat.apache.org/下载最新的Tomcat服务器版本,本书用的是Tomcat 7.0版本。下载完成后直接解压Tomcat文件到指定的目录下,例如:C:\Tomcat\apache-tomcat-7.0.62中。Tomcat目录结构如图2.5所示。
图2.5 Tomcat目录结构
下面介绍Tomcat的目录结构:
●bin文件夹,包含Tomcat服务器启动和终止服务器的批处理文件。例如:startup.bat、startup.sh、shutdown.bat、shutdown.sh、catalina.bat、catalina.sh等。其中startup.bat、shutdown.bat、catalina.bat是Windows中的批处理文件;startup.sh、shutdown.sh、catalina.sh是Linux中的脚本文件。
●conf文件夹,包含Tomcat的配置信息。主要有server.xml和web.xml这两个配置文件。在server.xml中可以更改服务端口和改变Web默认的访问目录,后面的小节将介绍如何修改。
●lib文件夹,存放tomcat运行中需要的jar包文件,例如:catalina.jar、servlet-api.jar、tomcat-dbcp.jar等jar包,正因为有这些包的支持,Tomcat才可以运行Web应用程序。
●logs文件夹,存放执行Tomcat的日志文件。
●temp文件夹,存放Tomcat的临时文件信息。
●webapps文件夹,是Tomcat默认的Web文件夹。本身自带两个admin应用和manager应用。开发人员可以直接将Web应用存放在该文件夹下。
●work文件夹,存放Tomcat执行应用后的缓存。
2.2.2 Tomcat的文件结构
Tomcat服务器中,要经常修改其配置信息来满足系统的需求,例如在server.xml中可以更改服务端口和改变Web默认的访问目录。
修改端口号,方法如下:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
修改port端口为8088。修改完毕,保存server.xml,然后重启Tomcat服务器,这样服务器的端口就更改为8088了。
修改Web默认的访问目录,方法如下:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
修改appBase中的文件夹地址。例如:将appBase的属性值webapps改为d:\test,修改后的文件如下:
<Host name="localhost" appBase="d:\test" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
这样就可以将Web默认的访问目录更改为d:\test。那么以后加载Web应用程序就会在该目录下再创建目录。
建立自身的Web目录。开发人员可以将应用部署在Tomcat服务器的默认webapps目录下,也可以部署在自己创建的目录下。方法如下:
首先创建自身的目录D:\test,其次配置Web目录,在server.xml文件的末尾</HOST>中加入如下语句:
<Context path="text" docBase="D:\test" debug="0" reloadable="true"></Context>
该语句的作用是将目录D:\test设置为Tomcat服务器的Web目录,将该文件的访问路径设置为“/text”。属性docBase的值为“D:\test”,它是指应用的物理路径。修改后将server.xml文件进行保存。假设现在有个test.jsp页面在D:\test目录下,那么页面的访问路径就为:http://localhost:8080/text/test.jsp。
在bin文件夹下,可以修改catalina.bat或者catalina.sh来更改Tomcat启动配置信息。例如增加Java运行内存:
set JAVA_OPTS=-XX:PermSize=512M -XX:MaxPermSize=512m -Xms512m -Xmx1024m
更多的修改内容请参见Tomcat官网说明。
2.2.3 Tomcat的工作原理
前面我们说过Tomcat是一个Web服务器,那它的作用是什么?它又是如何帮助外部网页访问我们自己服务器上的网页的?
如果想让某台计算机上的一个目录内容,被外面的Web浏览器通过HTTP协议访问,就要在这台计算机上安装和启动一个Web服务器软件,还要将该目录映射成一个虚拟的Web站点目录,这个Web站点目录通常称为虚拟目录。
一个Web站点上只能有一个虚拟目录的根目录,其他的虚拟目录都必须是该根目录的子目录。一般根目录用“/”符号表示,根目录与该根目录下的子目录或资源文件也以“/”符号进行分割。如图2.6所示的映射中,假设D:\test文件夹映射成Web站点的根目录,当计算机的域名为http://www.student.com时,那么浏览器访问http://www.student.com/test.html就可以得到D:\test\test.html文件的内容,如果访问http://www.student.com/test.html/student/test.html就可以得到D:\test\student\test.html文件的内容。
图2.6 映射示意图
一个文件系统目录可以被映射成一个或多个虚拟目录,但是一个虚拟目录只能对应一个本地文件系统目录,如图2.7所示。
图2.7 映射路径与本地文件系统多对一关系
当浏览器请求某个路径资源时,一般按照最长路径匹配原则进行处理。首先以请求路径中最深子目录作为一个虚拟子目录名称,查看是否存在这个虚拟子目录:如果不存在则查找是否存在上一级目录名称的虚拟子目录;如果找到匹配的虚拟目录后,则进入该虚拟目录中查找指定名称的资源。
提示
Tomcat中默认的根目录是webapps,上一节已经介绍了如何修改根目录,这里不再赘述。