可以使用由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接口,你可以把对象放置到整个会话作用域内,即使在该作用域中的对象的创建和销毁也可以监控到。
本文的相关连接请点这里