来源: http://www.qqread.com/java/2009/11/w480007.html
当你访问iGoogle或是myYahoo!一类的门户时,是否会对这种个性化门户界面的实现方式感到好奇呢?实现这种“组件式”门户的技术叫做Portlet。随着Portlet相关规范的统一,这种技术现在也被用于企业内部网站(企业门户)以及其他商业或个人网站。下面,我们将进行一次简短的Portlet入门介绍与教程。
Java Portlet的历史
自2003年最初的JSR 168规范发布以来,Portlet开发在企业和开源社区中都获得了积极响应。2008年6月发布了JSR 286规范,标志着Portlet开发技术已经非常成熟。截至目前已经有不止20个开源Portlet容器和门户产品可用,如SUN的Liferay Portal、eXo Platform和Jakarta Pluto等,也有来自主流软件厂商的商业化产品,如Vignette Portal、IBM WebSphere Portal、Sun OpenPortal和Oracle Portal(以前叫做BEA WebLogic Portal)等。
Web门户基础
那么,什么是门户呢?传统的观点认为Web分为三类:Web网站,搜索引擎和门户。Web网站一般放置个人主页或公司主页,而搜索引擎是网络爬虫,它索引个人和企业网页,以便于人们搜索,门户就象一个大杂烩,将各种有关或无关的东西全部糅合到一块(目前许多搜索引擎如Yahoo.com和MSN也是门户)。随着门户的演变,出现了一些新的特征,如保存用户的参数设置和其它自定义信息,用户也可以配置门户记住他们的设置,如背景色,显示记录条数等。支持自定义可以让不同的用户拥有个性化的门户,每个人访问门户时界面显示的内容可能完全不一样,如A看到的是新闻和股票,B看到的是娱乐和天文学。如图1所示。
点击查看大图 图 1 Yahoo门户:门户自定义让门户记住用户的参数设置
经过自定义后,不同种类的信息掺和在一起形成一个非常现代化的页面,目前最流行的做法是在门户上放置多个矩形框,每个矩形框代表一个Portlet。Wikipedia将门户定义为“以统一的方式显示来自不同地方的信息”,将Portlet定义为“可插拔的用户界面组件”。
门户的目标就是为不同用户定制显示不同的Portlet,以满足用户个性化的需求,这样做可以粘住用户。经过这几年的发展,门户的应用已经扩大到企业内部中去了,包括内部门户,B2B等形式,如企业财务门户将各种财务信息聚合到一起,分别以Portlet形式展示,如投资组合、401K计划、信用卡、银行账户等,财务部门人员就可以一次性获得大量的财务数据。
企业门户和Portlet容器
那么门户和Portlet容器是什么关系呢?简答:门户是Portlet容器的容器。Portlet容器是根据门户提供的Portlet标准API实现的供Portlet运行的环境,依靠这个环境,或者说平台,Portlet可以被实例化,使用,最终被处理掉(destroyed)。Java Portlet容器不是象Servlet容器那样标准的独立的容器,相反,它是在Java Servlet容器上实现的,并会重用Java Servlet的功能。从技术角度来说,Portlet容器可以看作是Portlet和门户之间的接口。
早期的Web门户都是采用封闭式开发的,自家开发的Portlet只能在一个特定的Portlet容器中运行,不具有很好的兼容性,遇到新项目或需求变化,开发人员不得不重新修改Portlet代码。这种情况直到2003年SUN发布JSR 168规范后才得到改善,虽说这个规范也不完美,但它提供了一个标准Portlet API,定义了Portlet生命周期和其它重要属性。即使到了今天,很多Portlet和Portlet容器都仍然遵循JSR 168或2008年发布的JSR 286规范,凡遵循这些规范编写的Portlet几乎都有很好的移植性。
提示:IBM也开发了自家的WebSphere portal,并且公开了API,IBM的API和SUN的API很类似,但最新的版本中,IBM放弃了自家的API,完全遵循JSR 168和JSR 286规范了。
现代Portlet容器可以用来构建企业内部网站(企业门户),商业网站或个人网站,大多数都实现了开箱即用的功能,如国际化支持,工具和内容管理,基于角色的授权,单点登录(SSO)支持,搜索和标签支持等。图2显示了一个正在运行的Portlet容器示例。
点击查看大图 图 2
Apache Jetspeed门户:包括一个日历Portlet
用户可以拖动日历Portlet的位置,如图3所示。
点击查看大图 图 3
移动日历Portlet
分享到:
相关推荐
创建一个简单的Portal-Basic HelloWorld应用可以帮助开发者快速了解框架的基本使用方式: 1. **创建项目**:在IDE中新建一个Web项目。 2. **配置web.xml**:添加Dispatcher Servlet的相关配置。 3. **编写Action**:...
- **创建项目**:在IDE中新建一个Web项目。 - **配置环境**:配置好Maven或Gradle的pom.xml文件,引入Portal-Basic框架依赖。 - **编写代码**:实现简单的Action和对应的JSP页面。 - **运行测试**:启动服务器,通过...
开源WEB框架-Portal-Basic使用手册的知识点可以详细阐述如下: 1. 开源WEB框架-Portal-Basic简介: ...此外,其良好的扩展性和整合能力,配合丰富的文档和社区支持,使Portal-Basic成为了一个值得推荐的开源Web框架。
【描述】:“门户(portal)示例”通常指的是一个演示或教程,用于展示如何构建、配置和使用门户应用程序。门户是一种Web平台,它能够整合各种信息源,如新闻、邮件、日历、企业应用等,提供统一的访问界面。在本示例...
它提供了一个清晰的指南,帮助开发者了解如何与其他软件组件进行通信。对于"portal_api_docs",我们可能面对的是一个门户系统,这个系统可能包含用户登录、权限管理、内容发布等关键功能,而API文档会详细列出这些...
【描述】"Websphere Portal V6 安装指南"是一份详尽的文档,包含了50页的逐步操作步骤,并配有截图,确保用户能够清晰地理解每一个安装阶段。这份指南旨在为IT专业人员提供一个直观且易懂的路径,让他们能够成功地在...
"EXT Portal"是一种基于Ext JS框架构建的企业级门户系统,它提供了一个用户界面来整合不同的应用程序和服务。在您的描述中提到的"改造过的EXT Portal"指的是对原版EXT Portal进行了定制化开发,以适应特定需求或改进...
标题 "hsp-for-tia-portal-v15.1---configuration-file_canopen_" 指的是一个关于西门子TIA Portal V15.1的Hot Spot Patch(HSP),这个补丁着重于CANopen配置文件的使用。描述中提到的“S7-1200扩展canopen编程”是...
BEA WebLogic Portal是BEA Systems(现已被Oracle Corporation收购)推出的一款企业级门户平台,旨在提供统一、个性化的访问多种应用和服务的入口。该技术白皮书详细阐述了WebLogic Portal的核心功能、架构以及开发...
NC Portal不仅是一个简单的页面展示系统,而是一个集成了企业级应用、信息展示、个性化配置等多功能的综合性平台。在第一章中,文档对Portal的概念进行了概述,并对NC Portal做了简介,强调了其在企业信息化建设中的...
综上所述,"portalTlv封装包"是实现Portal协议数据交换的一个工具,通过TLV格式提供了高效、灵活的数据编码。开发者可以通过学习提供的博客文章,了解并应用这个封装包来处理相关协议通信问题。在物联网和网络服务...
"admin-portal"项目是一个基于JavaScript的管理门户应用。它主要设计用于提供一个引导式的用户界面,帮助用户高效地执行日常任务。项目的核心是利用JavaScript的动态性和交互性来创建一个用户友好的管理平台。 在...
它主要针对临时网站管理员、开发人员和样式设计师的需求,提供了一个更简单、更清晰的解决方案。描述中提到的传统PHP CMS可能对非专业用户过于复杂,对开发人员来说结构混乱,对设计师来说定制困难,这表明Brilliant...
9. **SSOLab.Portal.WebApp**:可能是一个门户应用,用户可以通过它访问所有已集成的SSO应用。 通过这些文件,我们可以了解到这个SSO demo工程涉及了多应用的整合,一个中心化的SSO服务器,以及可能的用户门户,...
Portel可能是一个拼写错误,我们通常会遇到"Portal"这个词,它通常指的是一个网络门户,一个集成了各种服务、信息和应用的单一访问点。在本文中,我们将探讨基于图片的Portal教程可能涵盖的知识点。 1. **Portal的...
MarcOnt Initiative是一个专注于推动书目描述标准创新的项目,其核心目标是利用本体(Ontology)这一强大的语义工具,来创建一种全新的、标准化的描述语言。在信息化时代,随着信息量的爆炸式增长,如何高效地管理和...
【标题】"hackathon_portal:WIEHack 2.0门户"是一个基于Web的应用程序,设计用于组织和管理黑客马拉松活动,特别是WIEHack 2.0这一特定事件。这个项目利用了先进的Web开发框架和技术,如Django、Django REST ...
从提供的压缩包文件名"dh-nsb-question-portal-master"来看,这是一个项目源代码的主分支,很可能包含了该应用的完整代码库。通常,开发者会将源代码组织成多个文件和目录,包括应用程序的业务逻辑、视图模板、样式...