portlet 概念

来源:互联网 发布:反恐精英起源 mac 编辑:程序博客网 时间:2024/05/21 09:49

portlet 是可再用的 Web 模块,它们在门户网站服务器上运行,并提供对基于 Web 的内容、应用程序和其他资源的访问。公司可以创建它们自己的 portlet 或从第三方 portlet 编目中选择 portlet。portlet 用于组装成更大的门户网站页面,其中同一 portlet 的多个实例为每个用户显示不同的数据。

从用户的角度来看,portlet 是门户网站站点中提供特定服务或信息(例如,提供日历和新闻)的窗口。从应用程序开发者的角度来看,portlet 是可插入的 Web 模块,它们被设计成在门户网站服务器的 portlet 容器中运行。

portlet 容器提供了一个运行时环境,portlet 在这个环境中进行实例化、获得使用并最终被销毁。portlet 依靠门户网站基础结构来访问用户概要文件信息、参与窗口和操作事件、与其他 portlet 通信、访问远程内容、查找凭证以及存储持续数据。portlet API 提供了这些功能的标准接口。portlet 容器不是一个类似于 servlet 容器的独立容器。它作为 servlet 容器之上的一个薄层进行实施,并重复使用 servlet 容器所提供的功能。WebSphere Portal 通过提供两个 portlet 容器来支持两个不同的 portlet API:基于 org.apache.jetspeed.portlet 接口的 IBM portlet API 和基于 javax.portlet 接口的 JSR 168 portlet API。这两种类型的 portlet 都可以放在门户网站页面上。但是,portlet 不能将这两个程序包中的类和方法相混合。

页面上的每个 portlet 都负责以标记段的形式提供其输出,以集成到门户网站页面。门户网站负责提供有关每个 portlet 的标记。例如,门户网站可以提供 HTML 格式的标记,该标记为每个 portlet 给定具有最小化、最大化、帮助和编辑图标的标题栏。

portlet 和 Servlet API

portlet 是特殊类型的 Web 模块,它们被设计成在门户网站的环境中运行。它们写入扩展或复制 Servlet API 的 API 中。与 servlet 相反,portlet 可能不会将错误直接发送到浏览器、转发请求或将任意的标记写入输出流。与 servlet 相比较,另一个差异是,portlet 依赖门户网站基础结构的特定功能,例如,用户概要信息、存储并检索持久设置以及获取客户机信息。

总之,与 servlet 相比,可更加动态地管理 portlet。当门户网站服务器在运行时,由多个 portlet 组成的 portlet 应用程序可以通过门户网站管理界面进行安装和除去。具有适当访问权的管理员可在任何时候以类似的方式更改 portlet 的设置,而无需停止/重新启动门户网站服务器 Web 应用程序。portlet 可进行动态创建和删除。例如,一旦管理员创建新的剪切,剪切管理 portlet 就可创建新的 portlet 实例。

Java 2 安全性

在门户网站服务器上启用 Java 2 安全性可能会影响依赖某些特权进行处理的 portlet 的操作。如果您的 portlet 需要某些特权(例如,访问文件系统或网络),那么可能需要将 was.policy 文件打包到 portlet WAR 中,以表明需要哪些特权。甚至更重要的是,管理员应该制订 portlet 所需的任何特权。

访问 Java portlet 规范或 IBM portlet API 中的方法时不需要任何特权。即使 Java 2 安全性已启用并且 portlet 不具有任何特权,portlet 也总能调用这些方法,而不会导致 SecurityException。

 
原创粉丝点击