| |
作者: builder.com
可以使用由ant build脚本创建的web应用档案(war)文件,在服务器上部署java代码。java中的web应用有一定的格式,位于名为web-inf的目录中。该目录中包含一个存储jar文件的lib目录,存储未打包的类文件的classes目录,和一个描述应用配置的web.xml文件。
web应用中其它部分就是普通的html,jsp,图片文件及目录。这些可以整个压缩到一个war文件中,然后可以不做任何修改地部署到服务器。最重要的是,当放置一个war文件到服务器的webapps/ 目录下时,服务器会监控到这个变化,并自动解包、部署到服务器中,不需要修改server.xml的配置。发布更新也很简单,只需将新的war文件覆盖原来的文件即可。服务器会监控到这个更新,并解包、重新装载所有的类。
ant的war任务是jar任务的扩展,会对web-inf目录有一些特殊的处理。web-inf目录有4个子标签:
lib
classes
webinf
metainf
在这些标签中指定的文件将归入它们对应的目录。
列表 a 提供了war任务的一个实例,它将创建一个名为applicationversion2.war的文件。在该例中,从xml/av2-web.xml中获取web.xml,并包入html目录中所有的文件。此外,该任务还将lib/ext目录下(除名以oracle打头的文件外)的所有文件放入war的web-inf/lib目录,并把build/servlets目录中的所有servlet的文件放入web-inf/classes目录中。
-------------------------------------------------------------------------------- 还没有准备好转向到.net? 从java移植到.net并不是一件容易的事,可能你更愿意维护现有的应用程序架构。“反对移植java ejb到.net的五大原因”清楚地说明了为什么应该坚持java。不要错过这篇文章的最新讨论。 --------------------------------------------------------------------------------
绑定对象到httpsession
有时,你想创建一个对象,也许作为一个资源或者缓存,该对象将在用户的servlet或者jsp会话中一直有效。但,如果你也想在其它位置使这个对象保持有效,就是一个问题。你不希望在会话结束时,垃圾收集器回收这个对象。你可以实现httpsessionbindinglistener接口避免这种情况。
列表 b 给出了一个简单的实例。(注意省略了try/catch代码)
在会话中绑定这个对象不需要特别的处理。你所要做的仅仅是放置对象到会话中。如果放置到会话中的对象实现了httpsessionbindinglistener接口,会话会自动使它成为一个监听器,并且在绑定和去绑定时发送通知。
通过实现httpsessionbindinglistener接口,你可以把对象放置到整个会话作用域内,即使在该作用域中的对象的创建和销毁也可以监控到。
|
|