- Java Web开发技术教程
- 李西明 陈立为 邵艳玲主编
- 1761字
- 2025-04-01 14:59:55
2.2 Tomcat服务器
2.2.1 Tomcat的下载及安装
进入Tomcat官网进行下载,其安装文件有多种格式,其中ZIP文件是Windows系统下的压缩版本。本书下载的是Tomcat 8.5压缩版本。压缩包下载后,将之解压到一个无中文名称的目录下,如D:\apache-tomcat-8.5.37。解压后其文件结构如图2.1所示。

图2.1 Tomcat目录结构
其中的各个子文件夹说明如下。
•bin:存放启动和关闭Tomcat的脚本文件。
•conf:存放Tomcat服务器的各种配置文件。
•lib:存放Tomcat服务器的支撑JAR包。
•logs:存放Tomcat的日志文件。
•temp:存放Tomcat运行时产生的临时文件。
•webapps:存放各种Web应用。
•work:Tomcat的工作目录。
启动Tomcat前,先要确定计算机是否安装有JDK,笔者的计算机安装了JDK 1.8,还要配置如下环境变量。
•JAVA_HOME:其值设置为JDK的主目录,如C:\Program Files\Java\jdk1.8.0_181。
•CATALINA_HOME:其值设置为Tomcat的主目录,如D:\apache-tomcat-8.5.37。
然后进入Tomcat主目录下的bin子目录,找到其中的startup.bat文件,双击运行文件,等待片刻,若命令窗口出现如下信息,则表示启动完毕。
Server startup in 5012 ms
打开浏览器,输入地址http://localhost:8080,若出现图2.2所示的页面,则表示Tomcat安装与启动成功。
【注意】8080是Tomcat默认的端口,但有时候可能会被占用,这时可以修改Tomcat端口号以解决此冲突。
打开Tomcat主目录下的conf子目录,找到server.xml文件,可看到如下内容。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
修改其中的8080为其他值,如改为8090,重启Tomcat,这时测试Tomcat的URL就变成了http://localhost:8090。如果双击startup.bat文件后仅闪烁一下就再无反应,则需要配置环境变量JAVA_HOME,设置其值为JDK的安装路径。

图2.2 Tomcat的启动页面
2.2.2 Tomcat服务器中项目的部署
典型的编译好的Java Web应用项目的目录组织结构如图2.3所示。

图2.3 Java Web的目录组织结构
图2.4所示是一个用IDEA开发工具创建的Java Web项目,项目名称为uname,其目录结构就符合图2.3的要求。
在IDEA中,一个名为uname的项目编译完成后,接下来只需要把这个项目复制到Tomcat所在的webapps文件夹下即可,如图2.5所示。接着回到Tomcat文件夹,找到bin文件夹下的startup.bat文件并打开文件(注意:startup.bat文件运行成功后不能关闭,如果关闭了就相当于把Tomcat服务器关闭了)。之后打开浏览器输入http://localhost:8080/uname/,就能对这个文件夹里面的资源进行访问了。

图2.4实际项目的目录结构

图2.5 webapps文件夹
2.2.3 Tomcat虚拟目录映射
一个Java Web项目开发并编译好后,只需要把这个项目复制到Tomcat安装目录下的webapps子目录,启动Tomcat后即可供客户端浏览器访问。但如果不想复制项目过去,可以做成虚拟目录映射,即把项目实际目录映射为可供浏览器访问的目录。例如,项目的真实目录为d:/uname,如果不想把它复制到webapps下,但又希望通过http://localhost:8080/uname/能访问到,可以打开Tomcat文件夹conf目录下的server.xml文件,找到<Host>标签,在<Host>与</Host>之间添加下述语句。
<Context path="/uname" docBase="d:\uname"/>
其中参数说明如下。
•docBase:代表应用的真实路径。
•path:代表网络访问的虚拟目录名,表示将docBase指定的真实目录映射为path指定的虚拟目录,配置完成后重启Tomcat即可实现。这样开发好的项目就不需要每次都复制到Tomcat安装目录下的webapps子目录中了。
2.2.4 web.xml文件简介
通过Java Web项目下的web.xml文件可以初始化配置信息,例如,welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。
本节应主要掌握:通过配置web.xml文件,将Web应用中的某个Web资源配置为网站首页;将Servlet程序映射到某个URL地址上(下面学习Servlet时会讲到)。
下面来了解web.xml文件中的常用标签及掌握如何配置默认首页。
(1)XML文档有效性检查标签
<span style="font-family:Times New Roman; "> <!DOCTYPE web−app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app\_2\_3.dtd" > </span>
这段代码主要是为了指定文档类型定义(Document Type Definition,DTD),通过它可以检查XML文档的有效性。下面显示的<!DOCTYPE>有几个特性,这些特性主要用于描述关于DTD的信息。
①web-app定义了该文档(部署描述符,不是DTD文件)的根元素。
②PUBLIC意味着DTD文件可以被公开使用。
③“-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN”意味着DTD由Sun Microsystems, Inc.维护。该信息也表示它描述的文档类型是DTD Web Application 2.3,而且DTD是用英文书写的。
④URL“http://java.sun.com/dtd/web-app_2_3.dtd”表示DTD文件的位置。
(2)<web-app></web-app>标签
部署描述符的根元素是web-app。DTD文件规定web-app元素的子元素的语法如下。
<span style="font-family:Times New Roman; "> <!ELEMENT web−app (icon?, display−name?, description?, distributable?, context−param*, filter*, filter−mapping*, listener*, servlet*, servlet−mapping*, session−config?, mime−mapping*, welcome− file−list?, error−page*, taglib*, resource−env−ref*, resource−ref*, security−constraint*, login− config?, security−role*, env−entry*, ejb−ref*, ejb−local−ref*) > </span>
web-app元素中含有23个子元素,且这些子元素都是可选的。问号(?)表示子元素是可选的,而且只能出现一次;星号(*)表示子元素可在部署描述符中出现0次或多次。有些子元素还可以有它们自己的子元素。web.xml文件中web-app元素声明的是下面每个子元素的声明。
(3)<distributable/>标签
<distributable/>可以使用distributable元素“告诉”Servlet/JSP容器,Web容器中部署的应用程序适合在分布式环境下运行。
(4)<context-param></context-param>标签
<context-param> <param-value>business.root</param-value> </context-param> <!- - spring config - -> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-configuration/*.xml</param-value> </context-param>
(5)配置默认首页
举例:在web.xml的<web-app></web-app>标签内添加如下内容。
<welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list>
上述配置表示将index.html设置为默认主页,若找不到则设置下一个资源(index.htm)为默认主页,依此类推,若都找不到会报错。若设置index.html为默认主页,浏览器访问时,其URL不需要有index.html也能访问到该页面。例如,完整的URL是http://localhost:8080/demo/index.html,简化后的URL是http://localhost:8080/demo/,同样能访问到主页index.html。
【注意】web.xml文件必须放在WebContent\WEB-INF目录下。