论坛登陆 用户名:  密 码:
设为首页  加入收藏
08年北京名校秋季招生
名牌院校免试入学宽进严出,突破考分限制,名校与你零距离,以下院校按报名先后顺序录取,24小时网上报名覆盖全国
  您现在的位置: 中国教育招生在线 >> IT >> JAVA认证 >> IT正文
Tomcat与Java Web开发技术详解连载之一
 作者:佚名     2007-3-14 17:11:08        来源:不详  浏览次数:

 

 

 

 

 

 

 

 

本章介绍如何在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.xml
/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.8节。

2.2 创建和发布Web应用

Java Web应用由一组静态HTML页、Servlet、JSP和其他相关的class组成。每种组件在Web应用中都有固定的存放目录。Web应用的配置信息存放在web.xml文件中。在发布某些组件(如Servlet)时,必须在web.xml文件中添加相应的配置信息。

2.2.1 Web应用的目录结构

Web应用具有固定的目录结构,这里假定开发一个名为helloapp的Web应用。首先,应该在/webapps目录下创建这个Web应用的目录结构,参见表2-2。

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

目 录 描 述
/helloapp Web应用的根目录, 所有的JSP和HTML文件 都存放于此目录下
/helloapp/WEB-INF 存放Web应用的发布描述文件web.xml
/helloapp/WEB-INF/classes 存放各种class文件, Servlet类文件也放于此目录下
/helloapp/WEB-INF/lib 存放Web应用所需的各种JAR文件

例如,在这个目录下,可以存放JDBC驱动程序的JAR文件

从表2-2中,我们看到在classes以及lib子目录下,都可以存放Java类文件。在运行过程中,Tomcat的类装载器先装载classes目录下的类,再装载lib目录下的类。因此,如果两个目录下存在同名的类,classes目录下的类具有优先权。

本章介绍的helloapp应用的目录结构如图2-1所示,helloapp应用在Windows资源管理器中的展开如图2-2所示。

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

HTML组件:index.htm

JSP组件:login.jsp和hello.jsp

Servlet组件:DispatcherServlet

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

index.htm→login.jsp→DispatcherServlet→hello.jsp

图2-1 helloapp应用的目录结构

图2-2 helloapp应用在Windows资源管理器中的展开图

2.2.2 web.xml文件

Java Web应用通过一个基于XML的发布描述符文件来配置其发布信息,这个文件名为web.xml,它存放于WEB-INF子目录下。在附录B中将详细介绍web.xml的配置方法,在附录C中将介绍XML的基本知识。在web.xml文件中可包含如下配置信息:

Servlet的定义

Servlet的初始化参数

Servlet以及JSP的映射

安全域配置参数

welcome文件清单

资源引用

环境变量的定义

现在,创建一个默认的web.xml文件,并把这个文件放到WEB-INF目录中。

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app PUBLIC
  '-//Sun Microsystems,
  Inc.//DTD Web Application 2.3
  //EN'
  'http://java.sun.com/
  j2ee/dtds/web-app_2_3.dtd'>

<web-app>
</web-app>

以上web.xml文件的第一行指定了XML的版本和字符编码,第二行DOCTYPE指定文档类型,接下来声明了一个元素,所有关于Web应用的配置元素都将加入到这个元素中。

2.2.3 在server.xml中加入元素

元素是/conf/server.xml中使用最频繁的元素,它代表了运行在上的单个Web应用。一个中可以有多个元素。每个Web应用必须有惟一的URL路径,这个URL路径在元素的path属性中设定。例如,在名为"localhost"的元素中加入如下元素:

<!-- Define the default virtual host -->
<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
……
……
<Context path="/helloapp"
docBase="helloapp" debug="0"
reloadable="true"/>

</Host>

Context元素的各个属性的说明参见表2-3。

表2-3 Context元素的属性

属 性 描 述
path 指定访问该Web应用的URL入口
docBase 指定Web应用的文件路径,可以给定绝对路径, 也可以给定相对于Host的appBase属性的相对路径 (关于Host的appBase属性参见2.3节)。 如果Web应用采用开放目录结构, 则指定Web应用的根目录;如果Web应用是个WAR文件, 则指定WAR文件的路径
reloadable 如果这个属性设为true, Tomcat服务器在运行状态下会监视在WEB-INF/classes 和WEB-INF/lib目录下class文件的改动。 如果监测到有class文件被更新, 服务器会自动重新加载Web应用

在开发阶段,将reloadable属性设为true,有助于调试Servlet和其他的class文件。但是由于这一功能会加重服务器的运行负荷,因此建议在Web应用的产品发布阶段,将这个属性设为false。

(T117)

本文节选自由飞思图书授权《Tomcat与Java Web开发技术详解》


责任编辑:lss
  相关新闻
MCSD.NET的考试70-300
我的MCSE考试经验
MCSD.NET 之70-300考试心得精彩分享
JSFToolbox--用Dreamweaver开发JSF
MCSE认证考试全程心得
MCDBA培训教材
WebWork拦截器(Interceptor)使用方法
给MCSE备考者的五点忠告
专家指点:MCP考试新题型一一剖析
艰难PASS216,完成MCSE!!!
MCSD.NET的考试70-300
我的MCSE考试经验
给MCSE备考者的五点忠告
艰难PASS216,完成MCSE!!!
MCSD.NET 之70-300考试心得精彩分享
专家指点:MCP考试新题型一一剖析
别说你的起点不够高-一名MCT的心里话
通过MCDBA证书来验证你的SQL Server水平
关于MCSE的考试顺序的一些看法
[分享]我的MCSE学习心得体会
  评论
现在有100人对本文发表评论
查看所有评论
 
推  荐
 
100本成功必读热销书
热门招生
  北京文理研修学院   前进大学
  北京明园大学   北京建设大学
  北京邮电大学世纪学院   北方工商管理学院
  联想软件定向委培班   香港数码动画学院
  青年企业管理研修学院   北京华夏管理学院
热门培训
网络化办公专家培训认证 电子科技大学软件学院
软件测试工程师培训认证 北大青鸟十大授权培训
IT硬件工程师培训认证班 北京环球雅思荷兰预科
JAVA开发工程师培训 潜能时代IT服务管理培训
网络信息化工程师培训 清华大学继续教育学院
论坛精选
 
有些细节是男人也该注意的风度!最容易读错的字
某强人手机里保存的30条短信 中国十大高薪职业
最感人的十大韩剧经典台词 嫁给工程师的N个理由
爆强!只有一句话的鬼故事 转贴教你如何做妖精
 女人一定要記住的話 女人最好别嫁给最爱的男人
城市联盟
 大连 上海 天津 广州 西安 深圳  天津  青岛  大连  福州  沈阳  青海  连云港  南京  吉林  厦门  威海  辽宁  呼和浩特
Copyright © 2006   www.edu999.com   All rights reserved. 中国教育招生在线  版权所有
北京市通信管理局[2004]字第552号函    京ICP证040442号