- 浏览: 92952 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
jz20110918:
复制粘贴时多粘了一遍。
【转】Oracle中Decode()函数使用技巧 -
jz20110918:
转载时麻烦把源地址贴出来。
【转】Oracle中Decode()函数使用技巧 -
jz20110918:
你这字体也忒小了吧,瞅半天眼都废啦!!!!!就不能排版一下吗 ...
【转】Oracle中Decode()函数使用技巧 -
houliang4285:
给vmware的Linux虚拟机添加硬盘 -
pao569952355:
正解。3333qqqq
http://localhost:8080 请求用户名和密码。信息为: “XDB”
一、 Portlet简介
Portlet与servlet一样,都是jcr的规范api定义,不同的portlet还比较“年轻”,目前版本还只到2.0,而servlet规范已经相当成熟,发布了多个版本。如果不是十分准确的说,portlet只是另一种开发web程序的api,从这个方面说,开发portlet并没有什么神秘的地方,但是之所以有portlet这个规范,portlet适用的场景肯定与servlet是不同的,比如开发portlet不但要与portlet容器打交道,还要与portal打交道。读者在学习portlet开发的过程中,可以不时的用servlet的概念与portlet相比较,比较两者的异同,可以达到事半功倍的效果。
刚才说到portlet规范已经出到2.0,分别是jsr168,jsr286。JSR 168 目前在业界受到广泛支持,目前我们开发的大部分代码都是基于jsr168的,jsr168规范支持基本的开发方式,虽然提供的功能比较少,但是已经基本可以满足日常需要。Jsr168发布三年之后,大多数支持 Java Portlet Specification V1.0 的门户产品都提供一些附加扩展,以支持更高级的用例,这些附加的扩展造成了各个门户产品的标准不统一,彼此间的交互协作成了不可避免的问题。为了更好地规范 portlet 开发,以适应业界发展,并提供适应于最高级别用例的标准解决方案,从而为这些高级功能提供互操作性,在 2005 年 11 月开始了 Java Portlet Specification V2.0(称为 JSR 286)的开发,在2008年1月Java Portlet Specification V2.0 目前已经正式发布。JSR 286规范兼容了 JSR 168,并完善了 JSR 168 的部分功能,并提供了诸多 JSR 168 所没有的新特性,例如资源服务、事件、portlet 过滤器、共享呈现参数及 portlet 窗口等。与 V1.0 类似,V2.0 也将基于 J2EE 1.4,因此可让 Portlet 使用 J2EE 1.4 增强(如 JSP 2.0)。下面是该新规范的一些主要功能及特性:
- 资源服务:一种新的通过 portlet 呈现资源的方式。
- 事件:通过发送事件和接收事件来实现 portlet 之间的通信。
- Portlet 过滤器:与 servlet 过滤器类似,根据 Portlet 请求和响应动态的呈现内容的变换。存在以下四种类型的 portlet 过滤器:
- Action 过滤器
- Render 过滤器
- Resource 过滤器
- Event 过滤器
- 共享呈现参数:除了 portlet 私有的呈现参数之外,新增了可以在 portlet 之间共享的呈现参数。
- Portlet 窗口:提供 portlet 窗口 ID 供 portlet 使用
要讲解portlet,首先要明确三个概念:portal、portlet、portlet容器。Portlet与portlet容器的关系可以比较servlet与servlet容器的关系,两者是完全一致的,开发者按照portlet规范开发portlet,部署在中间件提供商(ibm、oracle、apache)提供的portlet容器中运行,比较难理解的是portal,首先portal是一个JEE的application,portal负责提供页面给客户,其次portal里面的内容是portlet生成出来的。一般的过程是,用户通过web客户端向portal发起http请求,portal解析这些请求,把请求“下发”给portlet容器,portlet容器来调用portlet,由portlet产生输出返回给portlet容器,portlet容器再把输出返回给portal,portal负责把这些portlet的输出聚集起来,把内容返回给web客户端。下面来具体描述一下portal、portlet、portlet容器三个概念。
什么是portal
Portlet规范中是这样定义portal的:
A portal is a web based application that –commonly- provides personalization, authentication,, content aggregation from different sources and hosts the presentation layer of Information Systems. |
Portal是一个基于web的提供个性化、登录授权、从不同的数据源聚集内容基于展现层的信息系统。具体到J2EE领域,portal大多数情况是一个符合J2EE标准的ear包工程。
什么是portlet
规范中式这样定义portlet的:
A portlet is an application that provides a specific piece of content (information or service) to be included as part of a portal page. It is managed by a portlet container, that processes requests and generates dynamic content |
一个Portlet是一个基于java技术的被portlet容器管理的web组建,它可以处理requests、生成动态的内容输出,一个portlet负责提供portal 页面中的某个特定部位的展现内容。
与servlet同样,portlet的生命周期是被portlet容器来管理的。Portlet生成的内容也可以称作fragment,这些多个portlet生成的多个fragment会被portal聚集(aggregate)在一起展现。不同用户看到的portlet可能不同,这依赖于不同用户对使用portlet的配置。
什么是portlet容器
规范中式这样定义portlet容器的
A portlet container runs portlets and provides them with the required runtime environment. A portlet container contains portlets and manages their lifecycle. It also provides persistent storage for portlet preferences. A portlet container receives requests from the portal to execute requests on the portlets hosted by it. |
Portlet容器提供portlet生命周期环境,管理portlet的生命周期,还提供portlet preferences的持久化支持,portlet从portal接受请求,然后分发给运行其上的portlet。
Portlet不负责聚集portlet生成的内容,这是portal责任。根据中间件厂商的实现方式portlet容器与portal可以放在一个application中实现,也可以放在两个不同的application中实现。
三者关系
下面是以一个用户使用web客户端来与portal交互的用力,描述portlet、portlet容器、portal三者关系、责任:
1. web客户端通过http 来对portal发起request请求
2. request请求被portal就收到
3. portal分析这个请求是否需要与portlet进行交互
4. 如果需要,则portal通知portlet容器调用portlet处理交互
5. Portal通过portlet容器得到portlet返回的fragments
6. Portal聚集portlet产生的fragments,生成最终的页面,返回给web客户端
版本兼容性
Jsr286规范是向后兼容的,所以所有基于jsr168写的代码生成的war都可以在jsr286容器里面运行。不过下面罗列出一些特例,这些特例会在具体章节说明。
1. RenderResponse.setContentType已经不再需要在getWriter 或者getOutputstream之前调用了,已经不会产生IllegalStateException
2. 对于在portlet工程中嵌入servlet、jsp调用getProtocol,jsr168中返回时null,jsr286中返回时HTTP/1.1
JSR286的主要新特性
Jsr286对Jsr168是向后兼容的,jsr286主要增加了如下新特性:
Ø 事件Events,可以是portlet可以接受、发送事件
Ø 公共展现参数public render parameters,容许portlet之间共享参数
Ø 资源服务 resource serving ,提供portlet服务资源的能力
Ø Portlet 拦截器 portlet filter,容许在portlet的request、response之间建立拦截器
与J2EE的版本对应
|
J2EE |
servlet |
jsp |
JSR168 |
1.3 |
2.3 |
1.2 |
JSR286 |
1.4 |
2.4 |
2.0 |
发表评论
-
PowerDesigner中显示name, code,comment的解决方法 修正脚本,执行不会重复添加comment
2016-03-18 11:04 1633Option Explicit Validat ... -
2014年6月环球资源工作转正总结
2014-10-15 17:24 0试用期工作总结报告 2014年3月17日,我有幸来到公司 ... -
备忘录
2014-10-10 17:17 0非黄 五福博古架 团圆 ... -
大型网站架构不得不考虑的10个问题
2014-04-10 16:33 1069这里的大型网站架构只包括高互动性高交互性的数据型大型网站,基 ... -
【转】30条值得你借鉴的好习惯
2013-09-13 13:31 786我有幸一直能生活在比较好的圈子中,我的优秀 ... -
Firefox扩展开发01-Hello World
2012-12-17 23:05 1175今天尝试开发一个Firefox的扩展。虽然比较简单,网 ... -
cmd /c和cmd /k 以及CMD命令
2012-09-28 11:17 290832011-03-31 17:14 【转】cmd ... -
自己搭建一个SSH框架
2012-08-16 19:23 1816自己搭建一个SSH框架!真累挺! 来源: 张成法的日 ... -
tar 解压缩命令
2012-06-13 09:39 1140tar -c: 建立压缩档案-x:解压-t:查 ... -
IBM WAS简介
2012-05-11 15:59 4712IBM WAS简介 IBM WAS 的全称是 IB ... -
给vmware的Linux虚拟机添加硬盘
2012-05-06 22:31 17801、先将虚拟机Power Off,在Virtual Ma ... -
log4j.properties配置详解
2012-04-20 16:26 3725stone 的 log4j配置详解 Log4J的配置文件(C ... -
Mysql 乱码问题--如何查看和修改Mysql 的字符集
2012-04-13 00:51 1987MySQL会出现中文乱码的原因不外乎下列几点: 1.ser ... -
MySQL中关于JDBC URL几个重要参数说明
2012-04-13 00:41 3498MySQL JDBC Driver 常用的有两个, ... -
IBM webSphere Portal之portlet与servlet规范的关系
2012-03-07 15:49 1642Servlet规范中是这样定 ... -
Java Socket 编写的 HTTP 服务器应用【转】
2011-05-26 18:23 3258转自http://hi.baidu.com/zpls200 ... -
java:ant:build.xml简析
2011-04-06 10:16 1394一、Ant是什么? Ant ... -
reflect Java的反射机制
2011-03-31 13:36 1451一、类型识别的两种方式: 首先了解一下“运行时类型识 ... -
OOP从实例谈:面向对象编程编程思想
2011-03-31 11:19 1185有了翅膀才能飞,欠缺灵活的代码就象冻坏了翅膀的鸟 ... -
编程的:23种设计模式
2010-10-29 21:05 9041、工厂模式:客户 ...
相关推荐
liferay portal 开发指南liferay portal 开发指南liferay portal 开发指南liferay portal 开发指南
sap的portal以及MDM的java开发文档
详细讲解weblogic Portal开发准则,以JDeveloper为开发ide工具,介绍PDK应用以及weblogic Portal开发实例
Portal开发Portal开发Portal开发Portal开发Portal开发Portal开发Portal开发Portal开发Portal开发
Portal Developers Guider开发指南.rarPortal Developers Guider开发指南.rarPortal Developers Guider开发指南.rarPortal Developers Guider开发指南.rarPortal Developers Guider开发指南.rarPortal Developers ...
我最近由于工作需要在学习PORTAL开发,公司用的是LIFERAY的,因此上网找了些资料,贡献给大家!希望对喜欢LIFERAY PORTAL的开发人员有用!!
Liferay Portal 二次开发指南,内容比较详细。
IBM Portal 主题皮肤开发指南,IBM 内部资料,非常好的参考资料
NC65portal开发文档
portal开发的学习资料。里面详细讲解了什么是portal以及怎么去开发应用portal,对于初学者来说很有帮助。
本文正对新手开发Liferay Portal 有很大的帮助作用,这是位数不多的汉语教程之一
此资源为IBM的portal资料 此为第一章 最近学习JBOSS 的PORTAL开发
Oracle Portal Web开发Oracle Portal Web开发Oracle Portal Web开发
liferay+Portal+二次开发指南 手册
在web开发中,我们已经创建一个lfwdemo项目,下面的案例均是在那个案例基础上进行的portlet的开发,当然如果你比较熟悉web开发的话,也不限于那个项目。 本portal开发案例,用6个案例讲解portal常用场景,它们分别是...
企业要求的Portal开发学习技术要求 希望对学习Portal的朋友有帮助
两部portal开发教程,一部是基于apache的pluto和jetspeed的,一部是基于IBM Websphere的,非常值得有志于portal开发的人来下!(password: xiaxia)
Oracle Portal用户指南.pdfOracle Portal用户指南.pdfOracle Portal用户指南.pdfOracle Portal用户指南.pdfOracle Portal用户指南.pdf
Liferay Portal 二次开发指南 pdf格式,本文从Liferay Portal的架构入手,详细讲解Portal的用户策略、内容布局、桌面和品质的要素,引导读者完成Liferay Portal初步的二次开发,在Liferay Portal上定制自己的Portlet...