将对象绑定到HttpSession

ZDNet软件频道 时间:2003-04-10 作者:翻译:Java研究组织-arthur |  我要评论()
本文关键词:javatips
有时我们希望创建一个作为缓存或者资源的对象,这个对象的生存期贯穿于用户servlet或者jsp session的始终。但是如果我们同时还希望这个对象可以被另一个地方所使用,那么这就成为了一个问题。
本文译自Builder.com有时我们希望创建一个作为缓存或者资源的对象,这个对象的生存期贯穿于用户servlet或者jsp session的始终。但是如果我们同时还希望这个对象可以被另一个地方所使用,那么这就成为了一个问题。因为我们不希望这个对象在session结束的时候被垃圾收集机制清理。我们可以通过实现HttpSessionBindingListener监听类来避免这个问题。

public class SomeObject implements HttpSessionBindingListener {
 
     private Connection someDbConnection = null;
 
     .... various bits of code ....
 
     public void valueBound(HttpSessionBindingEvent event) {
         // open the Connection
         this.someDbConnection = ....
     }
 
     public void valueUnbound(HttpSessionBindingEvent event) {
         // close the Connection
         this.someDbConnection.close();
     }
 
 } 

要将这个对象绑定到session中,我们只需要将它添加到session即可。如果一个放置到session中的对象实现了HttpSessionBindingListener接口类,那么sesssion会自动的为它创建一个监听者(listener),在绑定解除的时候通知它。

通过实现HttpSessionBindingListener,我们可以将我们的对象放在sesssion域中,并且可以管理它们的创建和撤销。



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134