Java技巧:部署WAR文件和绑定对象到HttpSession

1/5/2008来源:Java教程人气:5647


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