building block context的处理

本文介绍了一种通过在servlet filter中设置和释放ContextManager的方法,减少重复代码,并提供两种从servlet获取bbContext的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在building block里使用context后必须把其释放!!代码如下:

  1. ContextManager contextManager;
  2. contextManager = BbServiceManager.getContextManager();
  3. Context ctx = contextManager.setContext(request);

  4. .....

  5. contextManager.releaseContext();
那么在每个使用context的servlet里都调用这样几行代码就重复劳动了,应该把这几行代码写在servlet filter里:
        //执行servlet之前运行的代码
        ContextManager contextManager;
        contextManager = BbServiceManager.getContextManager();
        contextManager.setContext((HttpServletRequest) request);

        //进入下一个filter, if it is the last filter, access servlet
        chain.doFilter(request, response);

        //下面这行是在执行完servlet之后才运行的
        contextManager.releaseContext();


那么在servlet里有2种方法来获取bb context
方法一:
            Context bbContext = (Context) request.getAttribute("bbContext");

方法二:
            ContextManager ctxMgr = (ContextManager) BbServiceManager.lookupService(ContextManager.class);
            Context bbContext = ctxMgr.getContext();



servlet filter:http://zhangjunhd.blog.51cto.com/113473/20629


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值