本系列文章主要简单介绍一款Portlet开源框架juzu web Framwork,虽然其自身有配套的文档,但是其文档介绍的不是很充分,并且未有中文的,在此简单介绍一下juzu web框架常用的使用方式,以及在使用juzu过程中会碰到的问题和解决方式。
在介绍juzu前,会先简单介绍一下什么是portlet,及其使用场合portal的介绍。
1、什么是portal
官方定义是:Portal是一种Web应用,通常用来提供个性化、单点登录、聚集各个信息源的内容,并作为信息系统表现层的宿主。聚集是指将来自各个信息源的内容集成到一个Web页面里的活动。
百度解释:portal意门户,现多用于互联网的门户(入口)网站和企业应用系统的门户系统。
1)广义注解
这里是一个应用框架,它将各种应用系统、数据资源和互联网资源集成到一个信息管理平台之上,并以统一的用户界面提供给用户,使企业可以快速地建立企业对客户、企业对内部员工和企业对企业的信息通道, 使企业能够释放存储在企业内部和外部的各种信息。
它将各种应用系统、数据资源和互联网资源集成到一个信息管理平台之上,并以统一的用户界面提供给用户,使企业可以快速地建立企业对客户、企业对内部员工和企业对企业的信息通道, 使企业能够释放存储在企业内部和外部的各种信息。
2)狭义注解
所谓门户网站(入口网站),是指通向某类综合性互联网信息资源并提供有关信息服务的应用系统。门户网站最初提供搜索引擎和网络接入服务,后来由于市场竞争日益激烈,门户网站不得不快速地拓展各种新的业务类型,希望通过门类众多的业务来吸引和留驻互联网用户,以至于目前门户网站的业务包罗万象,成为网络世界的“百货商场”或“网络超市”。从现在的情况来看,门户网站主要提供新闻、搜索引擎、网络接入、聊天室、电子公告牌(BBS)、免费邮箱、影音资讯、电子商务、网络社区、网络游戏、免费网页空间,等等。在中国,典型的门户网站有新浪网、网易和搜狐网等;台湾的著名入口网站则是以雅虎奇摩(Yahoo-Kimo)、蕃薯藤(Yam)、网路家庭(PChome)等,市占率较高。
从定义中我们知portal的三个特点:
A. Personalization (个性化):用户自己定制自己所需页面
B. Single sign on(单点登陆):一处登陆,处处通行
C. Content aggregation(内容聚合):不同来源的信息整合到一个页面中。
但是光从定义上未必能从感官上了解到其是什么,下面这张图可以简单说明其展现的结构是什么:
从上图可知:上图显示了Portal页面的各种元素,由portlet组成。每个portlet页面由一个或多个portlet窗口组成,每个portlet窗口又分为两部分:一个是外观,它决定了portlet窗口的标题条、控制和边界的样式;另一个是portlet段,它由portlet应用填充。Portal服务器决定了portal页面的整体观感,像标识、标题条颜色、控制图标等。通过修改几个JSP和css模板文件就可以改变portal的整个观感。
2、什么是portlet
从上图中引出了portlet,其定义为:Portlet是被portlet容器所管理的基于Java技术的web组件,它处理客户端请求并生成动态内容。通常请求一个portal页面引发多个portlets被调用,每个portlet都会生成一个标记段,并与别的portlets生成的标记段组合在一起形成一个完整的portal页面展示给用户。每个portlet的生命周期被portlet容器所管理。每个portlet可能随当前登录用户不同而生成不同的内容。
3、什么是portlet容器
定义:Portlet容器负责管理portlets的生命周期并提供portlets的运行环境。它还提供portlet preferences的持久化存储功能。Portlet容器从portal接受请求并分配到它所管理的potlets中去执行。
说道portlet容器,我们不由想到servlet,下面简单对比下这两个,可以帮我们更快理解portlet容器是什么
1)portlets与servlets相似点
- portlets是基于Java技术的web组件;
- porlets由特定的容器管理;
- portlets生成动态内容;
- portlets的生命周期由容器管理;
- portlets通过请求/响应模式与web客户端交互。
2)portlets与servlets不同处
- portlets只能生成标记段,而不是整个文档;
- portlets没有可供直接访问的URL地址。不过你还是能够让别人通过URL访问到portlet,你可以把包含该portlet的页面的URL发给他;web客户端通过一个portal系统和portlets交互;
- portlets包含action请求和render请求;
- portlets有预先定义好的portlet模式和窗口状态;
- portlets可以在一个portal页面上同时存在多个;
- portlets不能在响应中设置字符集编码和HTTP 和headers;
4、portal开源框架
目前常用的portal开源框架有:
- Sakai 1.5(广泛的用于Virtual Research Environment(VRE)领域),地址:http://source.sakaiproject.org/release/1.5.1/
- uPortal(广泛的用于Academic Institutes work领域),地址:https://www.apereo.org/projects/uportal
- GridSphere(第一个支持JSR168规范的开源portal框架),地址:https://github.com/brandt/GridSphere
- eXo平台(当前非常流行),地址:https://www.exoplatform.com/
- Liferay(当前非常流行,良好的用户界面以及丰富的内建portlets),地址:https://www.liferay.com/
- StringBeans(非常易用),地址:
下图是对每个开源Portal框架打分,1~5分,其中5分是满分,详细的对每个框架进行了综合评价
标准 | Portal框架 | |||||
| Sakai 1.5 | uPortal | GridSphere | eXo平台 | Liferay | StringBeans |
遵循JSR168规范 | 0 | 5 | 5 | 5 | 5 | 5 |
便于安装 | 3 | 5 | 5 | 5 | 5 | 5 |
文档 | 2 | 2 | 4 | 3 | 3 | 5 |
在线支持 | 3 | 3 | 4 | 4 | 3 | 5 |
Potal管理 | 3 | 5 | 4 | 5 | 4 | 5 |
自定义 | 4 | 3 | 4 | 3 | 5 | 4 |
portlet资源库 | 4 | 3 | 4 | 3 | 5 | 3 |
性能 | 2 | 4 | 3 | 4 | 3 | 3 |
安全 | 3 | 4 | 3 | 4 | 4 | 4 |
技术 | 3 | 3 | 4 | 5 | 4 | 3 |
Portal特性 | 2 | 2 | 3 | 5 | 4 | 2 |
服务器兼容性 | 3 | 3 | 3 | 4 | 5 | 3 |
WSRP标准 | 0 | 3 | 0 | 3 | 3 | 0 |
合计 | 35 | 49 | 51 | 57 | 58 | 51 |
5、开发框架
上面介绍了portal和portlet及portal服务器,下面介绍一款portlet开源的开发框架——juzu web
juzu web官网为:http://juzuweb.org/ 代码下载地址为:https://github.com/juzu/juzu
juzuweb提供了快速开发portlet,对其配置文件做简单的修改,即可在portlet和servlet间做切换,虽然目前使用者不多,但是其开发效率很高,使用很简便,故选择了该框架作为了portlet开发的框架,后续几篇文章将对其进行深入的介绍。