什么是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.

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

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.

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客户端

 

portal、portlet、portlet容器三个概念的更多相关文章

  1. 浅谈学习C++时用到的【封装继承多态】三个概念

    封装继承多态这三个概念不是C++特有的,而是所有OOP具有的特性. 由于C++语言支持这三个特性,所以学习C++时不可避免的要理解这些概念. 而在大部分C++教材中这些概念是作为铺垫,接下来就花大部分 ...

  2. Java编码浅析(注意区分三个概念)(转)

    编码: (1)外部资源的字符集-----没有读入jvm中的数据都是外部资源 (2)jvm中数据的字符集-----都是unicode (1)和(2)之间发生交互时,如果不指定编码,则使用JVM平台默认字 ...

  3. UWP 多语言的三个概念

    首先了解一下 RFC4646 和 BCP-47 是什么东西: RFC4646 The name is a combination of an ISO 639 two-letter lowercase ...

  4. 正确理解java编译时,运行时以及构建时这三个概念

    Java中的许多对象(一般都是具有父子类关系的父类对象)在运行时都会出现两种类型:编译时类型和运行时类型,例如:Person person = new Student();这行代码将会生成一个pers ...

  5. "阿拉伯""伊斯兰""穆斯林"三个概念怎么分?

    伊斯兰.阿拉伯.穆斯林这三个概念到底有什么不同?要言君将用五分钟给您概述这三个概念,并厘清其边界,说明其交集,帮您迅速构建"阿拉伯.伊斯兰.穆斯林"知识结构概图.相信您得沉思一下费 ...

  6. 区分 JVM 内存结构、 Java 内存模型 以及 Java 对象模型 三个概念

    本文由 简悦 SimpRead 转码, 原文地址 https://www.toutiao.com/i6732361325244056072/ 作者:Hollis 来源:公众号Hollis Java 作 ...

  7. conda中重要的三个概念:环境、通道和包

    基本使用conda必须要了解的三个概念:虚拟环境.通道和包. conda提供了在python环境下重要的编程环境管理功能,包括环境隔离和依赖包管理. 环境隔离通过虚拟环境实现,与此相关的命令有: co ...

  8. Linux从头学11:理解了这三个概念,才能彻底理解任务管理和任务切换

    作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...

  9. Docker容器(三)

    一.创建容器 容器是Docker另一个核心的概念,简单来说,容器是镜像的一个运行实例,所不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层 1.1. 新建容器 使用docker crea ...

随机推荐

  1. 关于JDBC链接数据库的代码实现

    /** * 快速入门 */ @Test public void demo1() { /** * * 1.加载驱动. * * 2.获得连接. * * 3.编写sql执行sql. * * 4.释放资源. ...

  2. 关于HTML5标签不兼容(IE6~8)

    HTML5的语义化标签以及属性,可以让开发者非常方便地实现清晰的web页面布局,加上CSS3的效果渲染,快速建立丰富灵活的web页面显得非常简单. 比较常用的HTML5的新标签元素有: <hea ...

  3. <你不知道的JavaScript>读书笔记

    近几天看了一本不错的 JavaScript 的书,是 Kyle Simpson 写的 <You Don't know JS>.这本书是 Kyle Simpson 在 Github 上的开源 ...

  4. xml的语法与创建

    xml语法很简单,但很严格,如果出现错误则不能正常解析,而HTML如果出现局部的错误,照样解析 xml第一行必须写xml头<?xml version='1.0' encoding='utf8'? ...

  5. 在DataTable中添加行和列数据

    DataRow newRow = dtResult.NewRow(); newRow["ProName"] = "名字"; newRow["ProPr ...

  6. 缓存(之一) 使用Apache Httpd实现http缓存

    http://www.tuicool.com/articles/EFfeu2 HTTP性能的问题与方案 一个最终用户访问一个网页,从浏览器发出请求,到接受请求,时间大体上消耗在了以下几个部分: 建立t ...

  7. IOS的segmentedControl(分段器控件)的一些常用属性

    #pragma mark - 创建不同的分段器 //初始化方法:传入的数组可以是字符串也可以是UIImage对象的图片数组 UISegmentedControl *mysegmented = [[UI ...

  8. string和stringbuilder

    1)String是一个引用类型,一旦字符串被创建,就不能修改 例如: String a="AAA"; String b=a; a与b值相同,但不是同一个对象: 每次使用 Syste ...

  9. HDU 4430 Yukari's Birthday(二分)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4430 题目大意:给定n个蜡烛,围绕蛋糕的中心插同心圆,从里往外分别是第1圈.第2圈....第r圈,第 ...

  10. CUDA_矢量相加

    #include<iostream> #define N 10 _ _global_ _ void add(*a,*b,*c) { int tid=blockIdx.x; if(tid&l ...