2024年3月31日发(作者:)

Tomcat与Java Web开发技术详解

本章介绍如何在Tomcat上创建和发布Web应用。这里首先讲解Tomcat的目录结构以

及Web应用的目录结构,接着介绍如何将HTML、Servlet、JSP和Tag Library部署到Web

应用中,然后介绍把整个Web应用打包并发布的方法,最后介绍如何在Tomcat上配置虚拟

主机。

本章侧重于讨论Web应用的结构和发布方法,所以没有对本章的Servlet和JSP的例

子进行详细解释,关于Servlet和JSP的技术可以分别参考其它章节的内容。

2.1 Tomcat的目录结构

在Tomcat上发布Web应用之前,首先要了解Tomcat的目录结构。Tomcat的目录结构参见

表2-1,这些目录都是的子目录。

表2-1 Tomcat的目录结构

目 录 描 述

/bin 存放在Windows平台 以及Linux平台上启动 和关闭

Tomcat的脚本文件

/conf 存放Tomcat服务器的各种配置文件, 其中最重要的配置文

件是

/server 包含3个子目录: classes(空目录)、lib和webapps

/server/lib 放Tomcat服务器所需的各种JAR文件

/server/webapps 存放Tomcat自带的两个Web应用: admin应用和manager应用

/common/lib 存放Tomcat服务器以及所有 Web应用都可以访问的JAR文件

/shared/lib 存放所有Web应用都可以访问的JAR文件

/logs 存放Tomcat的日志文件

/webapps 当发布Web应用时, 默认情况下把Web应用 文件放于此目录

/work Tomcat把由JSP生成的 Servlet放于此目录下

从表2-1可以看出,在/server/lib目录、/common/lib和/shared/lib目录下都可以放JAR

文件,它们的区别在于:

在/server/lib目录下的JAR文件只可被Tomcat服务器访问

在/shared/lib目录下的JAR文件可以被所有的Web应用访问,但不能被Tomcat服务器访

/common/lib目录下的JAR文件可以被Tomcat服务器和所有Web应用访问

此外,对于下面将要介绍的Java Web应用,在它的WEB-INF目录下,也可以建立lib

子目录,在lib子目录下可以放各种JAR文件,这些JAR文件只能被当前Web应用访问。

在以上提到的lib目录下都只接受JAR文件,如果类压缩文件为ZIP文件,应该将它展开,

重新打包为JAR文件再拷贝到lib目录中。如果直接将ZIP文件拷贝到lib目录,则会发现

Tomcat服务器仍然找不到相关的类。

2.2 创建和发布Web应用

Java Web应用由一组静态HTML页、Servlet、JSP和其他相关的class组成。每种组件在

Web应用中都有固定的存放目录。Web应用的配置信息存放在文件中。在发布某些

组件(如Servlet)时,必须在文件中添加相应的配置信息。

2.2.1 Web应用的目录结构

Web应用具有固定的目录结构,这里假定开发一个名为helloapp的Web应用。首先,

应该在/webapps目录下创建这个Web应用的目录结构,参见表2-2。

表2-2 Web应用的目录结构

目 录 描 述

/helloapp 应用的根目录, 所有的JSP和HTML

文件 都存放于此目录下

/helloapp/WEB-INF 存放Web应用的发布描述文件

/helloapp/WEB-INF/classes 存放各种class文件,Servlet类文件也放于此目录下

/helloapp/WEB-INF/lib 存放Web应用所需的各种JAR文件。例如,在这个

目录下,可以存放JDBC驱动程序的JAR文件

从表2-2中,我们看到在classes以及lib子目录下,都可以存放Java类文件。在运行过

程中,Tomcat的类装载器先装载classes目录下的类,再装载lib目录下的类。因此,如

果两个目录下存在同名的类,classes目录下的类具有优先权。

在helloapp应用中创建了如下组件:

HTML组件:

JSP组件:和

Servlet组件:DispatcherServlet

这些组件之间的链接关系为: