图4显示了一个示例portlet项目的目录结构
那么门户和portlet容器是什么关系呢?简答:门户是portlet容器的容器portlet容器是根据门户提供的portlet标准api实现的供portlet运行的环境,依靠这个环境,或者说平台,portlet可以被实例化,使用,最终被处理掉(destroyed)java portlet容器不是象servlet容器那样标准的独立的容器,相反,它是在java servlet容器上实现的,并会重用java servlet的功能从技术角度来说,portlet容器可以看作是portlet和门户之间的接口
图 6 在vignette中搜索portlet
?xml verjava编程思想sion="1.0" encoding="utf-8"?>portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"xmlns:xsi="http://mandobject.somelist}"var="listitem" varstatus="loop">c:out value="${listitem.name}"/> br>/c:foreach>/c:if>/form:form>
图 8 exo jboss 中可选的portlet容器默认布局
自2003年最初的jsr 168规范发布以来,portlet开发在企业和开源社区中都获得了积极响应2008年6月发Java的历史有哪些布了jsr 286规范,标志着portlet开发技术已经非常成熟截至目前已经有不止20个开源portlet容器和门户产品可用,如sun的liferay portal、exo platform和jakarta pluto等,也有来自主流软件厂商的商业化产品,如vignette portal、ibm websphere portal、sun openportal和oracle portal(以前叫做bea weblogic portal)等
本文介绍了门户和portlet的入门基础知识,并提供了一个简单的实例,对如何创建和部署portlet做了简要说明目前既有开源的也有商业化的门户产品,不管采用哪种产品,基于门户java的开发将使程序员的重心转移到业务逻辑上门户技术还处于不断发展中,未来几年有可能出现新的门户技术,如果你正从事企业级开发,那么从现在开始关注门户技术吧!
下面这部分将介绍如何进行简单的portlet开发首先创建一个标准的java项目,然后创建一个portlet.xml文件,在这个文件中定义哪些portlet对哪些容器有效,以及在实例化时需要使用哪些类,但这个文件并没有定义如何注册和识别portlet
图 1 yahoo门户:门户自定义让门户记住用户的参数设置
当你访问igoogle或是myyahoo!一类的门户时,是否会对这种个性化门户界面的实现方式感到好奇呢?实现这种“组件式”门户的技术叫做portletJava学习资料随着portlet相关规范的统一,这种技术现在也被用于企业内部网站(企业门户)以及其他商业或个人网站下面,我们将进行一次简短的portlet入门介绍与教程
图 7 在vignette调整portlet布局
通过portlet容器可以很容易地改变整个网站的外观,风格,只需要改变portlet的布局、皮肤或ui主题即可
图 2 apache jetspeed门户:包括一个日历portlet
企业门户和portlet容器
门户的目标就是为不同用户定制显示不同的portlet,以满足用户个性化的需求,这样做可以粘住用户经过这几年的发展,门户的应用已经扩大到企业内部中去了,包括内部门户,b2b等形式,如企业财务门户将各种财主要优点务信息聚合到一起,分别以portlet形式展示,如投资组合、401k计划、信用卡、银行账户等,财务部门人员就可以一次性获得大量的财务数据
经过自定义后,不同种类的信息掺和在一起形成一个非常现代化的页面,目前最流行的做法是在门户上放置多个矩形框,每个矩形框代表一个portletwikipedia将门户定义为“以统一的方式显示来自不同地方的信息”,将portlet定义为“可插拔的用户界面组件”
web门户基础
早期的web门户都是采用封闭式开发的,自家开发的portlet只能在一个特定的portlet容器中运行,不具有很好的兼容性,遇到新项目或需求变化,开发人员不得不重新修改portlet代码这种情况直到2003年sJava的历史有哪些un发布jsr 168规范后才得到改善,虽说这个规范也不完美,但它提供了一个标准portlet api,定义了portlet生命周期和其它重要属性即使到了今天,很多portlet和portlet容器都仍然遵循jsr 168或2008年发布的jsr 286规范,凡遵循这些规范编写的portlet几乎都有很好的移植性
开发一个portlet
注意这个portlet并没有指出它在屏幕上的布局,是否可以调整大小,宽度和高度应该保持多少为佳,这些属性都由portlet容器来进行控制的
添加portlet到portlet容器后,你还可以设置它们的位置、布局和属性,例如,你可以设置默认的宽度和位置,以及是否可以最小化和移动位置等
图 4 poJava学习rtlet项目结构示例
图7显示了vignette示例页面有三个portlet,当用户登录到门户后默认就看到这三个portlet
小结
用户可以拖动日历portlet的位置,如图3所示
图8显示了exo jboss portlet容器默认的布局,当然你也可以在此基础上重新调整,以符合你特殊需要
图 3 移动日历portlet
java portlet的历史
为了让portlet可以真正运行,你还需要编译并部署它在编译时,创建一个标准的java war文件(一般使用ant或maven创建),部署时将war文件放到托管portlet容器的应用服务器上当portlet配置好,且在portlet容器中注册后,就要借助portlJava程序员et.xml文件查找哪些容器中可以使用哪些portlet了例如,在vignette portal中,你可以通过搜索找到需要的portlet,然后将其添加到门户中,如图5和图6所示
图 5 在vignette中添加一个portlet
下面的portlet.xml定义了一个portlet:
那么,什么是门户呢?传统的观点认为web分为三类:web网站,搜索引擎和门户web网站一般放置个人主页或公司主页,而搜索引擎是网络爬虫,它索引个人和企业网页,以便于人们搜索,门户就象一个大杂烩,将各种有关或无关的东西全部糅合到一块(目前许多搜索引擎如yahoo.com和msn也是门户)随着门户的演变,出现了一些新的特征,如保存java培训学校用户的参数设置和其它自定义信息,用户也可以配置门户记住他们的设置,如背景色,显示记录条数等支持自定义可以让不同的用户拥有个性化的门户,每个人访问门户时界面显示的内容可能完全不一样,如a看到的是新闻和股票,b看到的是娱乐和天文学如图1所示
现代portlet容器可以用来构建企业内部网站(企业门户),商业网站或个人网站,大多数都实现了开箱即用的功能,如国际化支持,工具和内容管理,基于角色的授权,单点登录(sso)支持,搜索和标签支持等图2显示了一个正在运行的portlet容器示例
提示:ibm也开发了自家的websphere portal,并且公开了api,ibm的api和sun的api很类似,但最新的版本中,iJava学习bm放弃了自家的api,完全遵循jsr 168和jsr 286规范了
白癜风的治疗方法