扩展WebSphere Portal V6个性化功能
2010-09-27 08:17:35 来源:WEB开发网在 J2EE 环境中,Web 应用程序之间不能共享会话;因此,会话无法用于在 Portlet、Web 应用程序、或者甚至 Portlet 和控制页面可见性的规则之间进行信息通信。
教程中的代码还在 init 方法中将应用程序对象("this")存储到会话中。将应用程序对象存储到会话或请求中,这样做可以允许规则引擎稍后查找对象,而无需创建一个新的实例。在会话或请求中存储对象时所使用的键应该与在 Personalization Portlet 中定义该应用程序对象时所分配的会话键相匹配。可以不将对象存储到会话中,但在大多数情况下,这样做将提高性能。放到会话中的对象应该是线程安全的和可序列化的。如果将对象放到请求中,那么可序列化和线程安全并不是必需的,但是您需要在每次请求中创建这个类的一个新的实例,这可能会降低性能。
即时可用的应用程序对象
规则编辑器中的 Action Bean、Action Count、Browser Capability、Category Bean、Category Count、Date、Portlet Attributes、Request 和 Session 对象都实现为应用程序对象,并且它们使用了本文中所介绍的相同的公共接口。在安装的过程中,在一个隐藏目录中对这些对象进行了定义,但是它们与您编写的其他应用程序对象没有什么区别。
使用应用程序对象的最佳实践
实现 SelfInitializingApplicationObject 和 Serializable 接口。
在 init 方法中调用 context.setSessionAttribute(myKey, this); 将您的应用程序对象存储在会话中,其中的 "myKey" 是您在为 Personalization 定义应用程序对象时使用的键。
在 init 方法中,使用应用程序对象中的实例变量或 WebSphere Dynamic Cache 映射来存储 getter 方法所使用的信息(比如用户名)。
编缉推荐阅读以下文章
- 使用WebSphere Portal开发多区域设置网站
- ››WebSphere Application Server 7.0 XML Feature P...
- ››WebSphere 反向投资者: 解决 WebSphere Applicati...
- ››WebSphere sMash 的创新应用,第 2 部分: 借助包装...
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››Websphere MQ v6集群的负载均衡新功能
- ››WebSphere Process Server V6.0.2 集群,第 2 部分...
- ››WebSphere Process Server V6.0.2 集群,第 1 部分...
- ››WebSphere MQ性能调优浅谈
- ››WebSphere配置资源库管理
- ››WebSphere中的SSL/TLS:用法、配置和性能
- ››websphere ejb远程/本地调用总结
- ››扩展WebSphere Portal V6个性化功能
更多精彩
赞助商链接