在单机的Tomcat中部署应用是很容易的,只需要写一个XML文件,即部署描述文件(deˉployment descriptor)。而Java EE服务器也同样需要这么一个文件,只是它的部署工具为我们创建了这个文件,所以不需要我们手工编写。
技巧:关于如何详细使用Tomcat,请参考Matthew Moodie著的《精通Jakarta Tomcat5》(Pro Jakarta Tomcat5)(2004年Apress出版,ISBN1ˉ59059ˉ331ˉ6)。
部署描述文件是一些XML格式的文件,它们包含了整个Web应用的配置信息。本书第4章将对部署描述文件做更详细的阐述。清单3ˉ5是本章Java FAQ应用的部署描述文件,文件名是Web.xml,它位于应用的WEBˉINF目录下。
清单3ˉ5 Java FAQ组件的Web.xml文件
如果Java EE服务器正在运行,那么停止它并且启动Tomcat服务器。如果已在Tomcat的/Webapps目录下创建了本章前面所介绍的如图3ˉ2的目录结构,那么工作已经基本完成。如果应用的目录不在Tomcat的/Webapps目录下,那么只需简单地把目录结构复制到该目录下即可。还有一种方案,你可以转到该Web应用的顶层目录下(例如,如果该应用的最高层目录是/Jsp Ex01,则转到这个目录下),用命令“jar cf Jsp Ex01.warˇ”手动创建WAR(Web Archive)文件,然后把这个.war文件复制到Tomcat的/Webapps目录下。
打开浏览器窗口输入相应的地址,比如http://localhost:8080/Jsp Ex01,浏览器将下载显示welcome.jsp文件,如图3ˉ8所示。
提示:如果没有出现welcome页面,首先检查服务器是否运行正常。在输入默认的URL网址(比如http://localhost:8080)后,若出现一个有效的页面则是正常的。如果服务器正常运行,你可能遇到解释或编译问题。下一节将讨论怎样处理那些解释和编译的问题。
对于部署在单机Tomcat服务器上的每个Web应用,都需要为它编写一个部署描述文件,下面让我们来看看这个例子的Web.xml文件包含哪些内容。这个文件一开始是标准的XML声明和<Webˉapp>根元素,其中包括与结构(schema)声明相关的属性,这个schema声明可以在任何JSP部署描述文件中使用。
接下来是文件的XML内容。这个文件中有3个元素:一个displayˉname元素;一个包含JSP相关的信息的servlet元素;还有一个welcomeˉfileˉlist元素。
第一个displayˉname元素为Web应用设置一个易用好记的名称。用Web应用工具可以显示这个名称。例如Tomcat就包含一个管理工具的页面,直接在Tomcat的本地主页上(http://localhost:8080/)就可以链接到它。这个管理页面将列出这个服务器上已部署的所有Web组件的显示名称(displayˉname)。Sun的Java EE服务器也有一个管理页面(http://localhost:4848),如图3ˉ9所示,其中的部署描述符的显示名称(displayˉname)就是Web应用的名称。
|
|
| 图3ˉ9 这个Web Application页面是Sun应用服务器的管理工具页面,图中所示是已经部署到服务器的应用。在部署描述文件中的显示名称(displayˉname)字段相当于页面中的Application Name字段 |
第二个servlet元素包含了关于Web应用的JSP或Servlet的信息。本章随后将讲到,服务器会把JSP源文件转换成Servlet文件,并且JSP页面的实现类是一个Servlet。因为这一原因这个元素命名为servlet,而不是JSP。
最后一个元素是welcomeˉfileˉlist。这个元素列出了一些文件,客户端通过在浏览器中输入应用的环境(context)标识来访问它们,而不是输入在应用中的实际资源。这些文件都称为欢迎文件(welcome files)。例如,一个URL地址http://locahost:8080/Jsp Ex01,它并不指向Web组件中的资源。任何人输入这样的一个URL,都可以访问列表中的某个欢迎文件。如果列表中有多个文件,那么服务器将返回第一个被找到的欢迎文件。
提示:本章介绍这个例子用到的部署描述文件的一些元素,在第6章,我们将具体解释部署描述文件。另外还可以在Tomcat的文档、JSP和Servlet的规范中找到更多有关部署描述文件的信息。
当浏览器载入欢迎页面时,你可能看到页面的链接并没有直接指向实际的文件。如果点击这些链接,浏览器可能会显示一个HTTP404的错误。但是我们并没有看到错误处理的页面,原因是没有找到服务器上的资源,而且该错误属于页面中无法捕获的异常。
注意:根据Servlet2.4规范,部署描述文件中的元素可以按任何顺序出现。例如清单3ˉ5中的部署描述文件,如果把welcomeˉfileˉlist元素作为该文件的第一个元素,那么这个Web应用仍然可以正常工作。但是,在早期版本的Servlet和JSP规范中,部署描述文件的元素必须符合文档类型定义(DTD)(JSP1.2及其更早版本)或者XML Schema(JSP2.0)中规定的顺序,否则将无法运行该应用。如果服务器只支持Servlet2.3或JSP2.0(或者更早版本),那么需要从规范中查找到相应部署描述文件元素的正确顺序。
若该应用实际部署到Tomcat服务器,则需要把这些文件复制到Tomcat的/webapps目录下。如果不想把这些文件直接放到该目录下,可以把它们打包成一个WAR文件,然后再部署。
一般的Web应用都包含许多文件和组件,而WAR文件正是一种方便组织文件的方法,它把这些文件打包成一个WAR(Web Archive)文件。所有的JSP容器都能够从WAR文件读取和部署Web应用。因此部署应用程序就变得容易了,只要创建一个具有正确的应用目录结构的文档包,然后把它放到容器中相应的目录下就可以了。Servlet规范定义了Web应用程序的WAR文件的目录结构。同样规范还定义了部署描述文件。当我们使用Sun Java EE这样的部署工具时,它会为我们创建好相应的目录结构和部署描述文件。当我们在单机服务器(如Tomcat)上部署时,就需要手工来处理这些事宜了。
总之,应用的结构应该类似于下面的例子:
顶层目录定义了Web应用的环境(context)。每个不同的Web应用都有其单独的应用环境。在应用环境目录下是该应用公开的文件,通常包括应用的HTML页面和JSP页面。在应用环境下还有WEBˉINF目录,此目录包含了部署描述文件(web.xml)和其他的非公开的文件,所以应用的客户端不能直接访问这些文件。在WEBˉINF目录下还有几个目录,最常见的三个是tlds、lib和classes。其中的tlds目录不是必须的,通常用它存放一些标签库文件(参考第4章)。lib目录用来存放Web应用所用到的Java库文件(.jar文件)。最后一个classes目录用于存放Web应用的类文件。
| 回书目 上一节 下一节 |
|
· SQL Server入门到精通.. · 交换技术配置手册技术.. · 超级网管员——网络应.. · 网络服务器配置与应用.. · Linux集群技术自测试题.. · JavaSript核心技术自测.. |
· ARP攻击与防范技术自测.. · 国庆挑战自己参加自测 .. · 《网管员必读—网络应.. · 历次技术自测 获奖网友.. · 51CTO国庆七天技术自测.. · 9.2.2 无线AP |
|
|||
| · McWill、WiMAX、3G博弈 · 网管系统介绍 · 网络管理系统如何支撑I.. · CISSP认证成长之路 · 51CTO国庆充电专题之好.. · 网络技术经典基础教程 · 51CTO主编推荐经典专题 · RAID——磁盘阵列基础 |
· 充电计划之热门IT认证.. · 51CTO技术自测 挑战自.. · AMD Phenom三核处理器.. · 国际文档格式标准开战 · 2007年互联网大会 · 我是黑客我怕谁——讲.. · Solaris 10 配置管理 · Solaris基础知识入门 |
||
|
|||
| · Java基础教程 · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · RAID——磁盘阵列基础 |
· 三层交换技术专题 · SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · C#技术开发指南 · Solaris 10 配置管理 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · RAID——磁盘阵列基础 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·体验Windows Server 2008.. ·将超星图书转成PDF文档 |
·使用 Office Communicati.. ·VMware Workstation 6.01.. |
| ·强烈质疑“步行1公里就能.. ·国庆期间新闻回顾:微软.. |
·9月第3周回顾:微软和英.. ·9月第2周回顾:四核之战.. |
| · 华为、贝恩资本22亿美元.. · NGN:下一代网络 · 网络访问中断大排查 |
· 教你使用Anti ARP Sniff.. · 网络嗅探教程:使用Snif.. · 常见病毒手工清除方法大.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 · Solaris基础知识入门 |
· Google推出唯一硬件——.. · 硬盘之父获得诺贝尔物理.. · 理性面对四核服务器选购 |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 硬盘之父获得诺贝尔物理.. · 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. |