PortletSession上存储的属性和HttpSession上存储的属性是可以相互访问的,两者完全对等。只是表现形式不同。对于APPLICATION_SCOPE上的属性,两者有相同的属性名,但是对于PORTLET_SCOPE上的属性,两者属性名不同,区别在于PortletSession上这个属性名必须加上前缀javax.portlet.p

这两者上的属性都被HttpSession的几个属性监听器所控制:具体说来是:

HttpSessionAttributeListener

HttpSessionBindingListener

HttpSessionActivationListener

 

PortletSession和HttpSession生命期是 “唇亡齿寒”的关系,一个没了另外一个就没了。