个人建议不用这种方法实现,寻求其它解法,portlet的规范是说只读的.虽说从理论上它们(portlet session和servlet session)是不直接共享的,但是实际它们是共享一个servlet容器,即使是这样,我是找不到从portlet写回servlet容器的方法. 我年轻时曾经看到jboss源...
显示全部个人建议不用这种方法实现,寻求其它解法,portlet的规范是说只读的.虽说从理论上它们(portlet session和servlet session)是不直接共享的,但是实际它们是共享一个servlet容器,即使是这样,我是找不到从portlet写回servlet容器的方法.
我年轻时曾经看到jboss源码有那么一段代码是可以写回去servlet session的,但是每个portlet container的实现是不一样的,没有必要去钻牛角尖.当然去研究ibm portal的源码有助于共享的实现,如果有足够的时间的话.从理论上来说,portlet container和servlet container共享,所以portlet container所保存的值必然是servlet container上面保存的值,只是portlet规范提供可读的API,这是基于安全性的考虑.在现在的js2的portlet container的概念是一个虚拟的servlet,不是一个可以直接操作的servlet,从这个概念出发,portlet是没有提供直接的方法来做这件事.当然如果有心的话,认真钻研下去可能是有办法的.
事实上我们也没有必要一定要直接共享servlet session去解决这个问题;例如共享cookie,应用web services服务,CAS都是可以解决这些问题的方法.
收起