Java Portlet 规范概述
首先,解释几个基本的术语。
1)Portal
Portal 是一种 web 应用,通常具有个性化、单点登录、来自不同源的内容聚合(aggregation)并提供信息系统表现层等特点。所谓聚合,是指将不同来源的内容整合到一个 web 页面的操作。一个 Portal 应用可通过复杂的个性化配置为用户提供定制的内容,而 Portal 页面也可含有不同的 portlet 为不同的用户生成内容。
互联网流行之初,用户与 web 的交互通常是一个 URL 访问一个单一的静态 web 站点。随着 applet、JSP 等技术的使用,出现了更多动态 web 内容的展示。但对 web 开发人员而言,缺乏跨浏览器的应用实现标准依然是困扰他们的大难题。 Portal 的出现解决了动态内容的聚合问题,并向用户提供了一个面向协作的聚合平台。
IBM 将 Portal 门户网站视为下一代的基于 Web 的桌面系统,它通过 Web 把电子商务应用程序传送到各类客户机设备。门户网站为站点用户提供了到多种类型的信息和应用程序的单点访问。不管这些信息驻留在哪里,也不管它们是什么格式的,门户网站都以一种令人满意的、适应用户的方式聚集所有的信息。一个完整的门户网站解决方案应当使用户方便地访问他们完成任务所需的每一样工作。
IBM WebSphere Portal 的可扩展的框架允许最终用户与企业应用程序、人员、内容和流程交互。他们可以个性化和组织他们自己的门户网站视图、管理他们自己的概要文件并发布和共享文档。 WebSphere Portal 提供了附加的服务,如单点登录(single sign-on)、安全性、内容管理、搜索和分类学(taxonomy)、对移动设备的支持以及站点分析。
2)Portlet
Portlet 是基于 Java 技术的 web 组件,由 portlet 容器负责管理,portlet 的生命周期也由 porlet 容器管理。 Portal 使用 portlet 作为可插拔的用户接口组件,从而为信息系统提供表现层。 Web 客户端通过请求 / 响应机制和 portlet 交互。因用户对 portlet 的配置不同,portlet 生成的内容也各有所异。
IBM WebSphere Portal 是一个可以让用户插入新功能或者扩展(portlet)的框架。 Portlet 是 WebSphere Portal 中的应用程序。在一个起到用户通往信息和任务的窗口作用的门户网站中,开发 portlet 是最重要的任务。
3)Porlet 容器
Portlet 容器负责运行 portlet,并为 portlet 提供必要的运行环境。 Portlet 容器包含 portlet 并管理其生命周期,同时持久存储 portlet 的参数。 Portlet 容器接收并处理来自 portal 的请求,运行 portlet,最后生成动态的内容。需要注意的是,portlet 容器并不聚合多个 portlet 生成的内容,而是由 portal 来完成聚合的工作。
回页首
3.1.2 与 Servlet 的关系
按照 Servlet 规范 v2.3 的定义,servlet 也是一种基于 Java 技术的 web 组件,由容器管理,可生成动态的内容。那么,servlet 和 portlet 有什么区别呢?表 3-1 列出了 servlet 和 portlet 的异同点。
表 3-1. Servlet 和 Portlet 比较
相 同 点 | 不 同 点 |
都是基于 Java 技术的 web 组件 | Portlet 只生成标记片段(markup fragment),由 portal 来聚合所有的 portlet 标记片段得到完整的 portal 页面 |
都由专门的容器管理 | Portlet 并不直接和 URL 绑定 |
都能动态生成内容 | Web 客户端需要通过 portal 系统和 porlet 交互 |
两者的生命周期都有专门的容器维护 | Portlet 具有更精细的请求处理、动作请求和显示请求 |
都通过请求 / 响应模式与 web 客户端交互 | Portlet 有预定义的 portlet 模式(portlet mode)和窗口状态(window state),指明了 portlet 的操作功能和 portal 页面实际状态的数量 |
Portlet 可多处存在于同一 portal 页面中 |
表 3-2 列出了 portlet 和 servlet 各自独有的特点。
表 3-2. Portlet 和 Servlet 独有的特点
Portlet | Servlet |
Portlet 能够访问和存储持久化的配置信息和定制数据 | Servlet 能设置响应的字符集编码 |
Portlet 能够访问用户 profile 信息 | Servlet 能在响应中设置 HTTP 报头 |
Portlet 具有 URL override 功能,从而能在其内容中创建超链接。这样,portal 服务器无需知道页面片段中的链接和动作的创建。 | Servlet 能和 URL 对应 |
Portlet 能将瞬时数据以两种域方式存储在 portlet session 中:应用级域和 portlet 私有域 |
由于以上的不同,portlet 和 servlet 是两种不同的组件。但 portlet 在配置、类装载、web 应用、web 应用生命周期管理、session 管理和请求分发等方面和 servlet 有着相似之处。 Portlet、servlet 和 JSP 可捆绑在一个扩展的 web 应用中,称为 portlet 应用。此时,portlet、servlet 和 JSP 共享类装载器、应用上下文(context)和 session 。 Portlet 可通过请求分发器来调用 servlet 和 JSP,就如同 servlet 可调用其他 servlet 和 JSP 一样,这样,portlet 和 servlet 可实现无缝的集成。
Portlet 容器是 servlet 容器的扩展,因此,不论 portlet 容器如何实现,其运行环境都假定支持 servlet 规范 2.3 。
回页首
3.1.3 Portal 页面
如 图 3-1 所示,portlet 生成片段(fragment),而 portal 通常要添加上标题、控制按钮和其他装饰性元素,而得到 portlet 窗口。最后 portal 将多个 portlet 窗口聚合而成一个完整的文档,即 portal 页面。
图 3-1. Portal 页面的组成元素
Portlet 在 portlet 容器中运行,容器接收 porlet 生成的内容,并传递给 portal 。由 portal 服务器组织成 portal 页面,并送交客户端设备(如浏览器)显示。 Portal 页面的生成过程如 图 3-2 所示。
图 3-2. Portal 页面生成过程
Java Portlet 规范概述的更多相关文章
- JAVA编程规范(下)
JAVA编程规范(下) 2016-03-27 6. 代码的格式化 6.1 对代码进行格式化时,要达到的目的 1. 通过代码分割成功能块和便于理解的代码段,使代码更容易阅读和理解: 2. ...
- Java代码规范
Java代码规范 本Java代码规范以SUN的标准Java代码规范为基础,为适应我们公司的实际需要,可能会做一些修改.本文档中没有说明的地方,请参看SUN Java标准代码规范.如果两边有冲突,以SU ...
- 标准的Java编码规范手册
编码规范体现出一个开发者的基本素质,良好的编码规范可以提高团队编码的效率,避免很多不必要的问题.今天分享一个标准的Java编码规范给大家,希望对于大家今后的开发工作带来帮助. 编码规范的意义 ...
- JAVA代码规范笔记(上)
本文为<code conventions-150003>(JAVA代码规范)笔记. 文件组织 1.超过2000行代码的源文件将会比较难以阅读,应该避免. 2.每个Java源文件都包含单一的 ...
- Notes 20180506 : Java程序设计语言概述
2.Java程序设计语言概述 如果对于开发语言的排行榜有所关注的话,那么会发现很长一段时间以来Java都是位居榜首的高级开发语言,作为一个Java开发者,为此感到骄傲的同时也深感忧虑,骄傲的是自己接触 ...
- java虚拟机规范(se8)——java虚拟机结构(六)
2.11 指令集简介 java虚拟机指令由一个字节的操作码,接着时0个或多个操作数组成,操作码描述了执行的操作,操作数提供了操作所需的参数或者数据.许多指令没有操作数只包含一个操作码. 如果忽略异常处 ...
- Java模块化规范之争(转载)
经过近20年的发展,Java语言已成为今日世界上最成功.使用的开发者人数最多的语言之一,Java世界中无数商业的或开源的组织.技术和产品共同构成了一个无比庞大的生态系统. 与大多数开发人员的普遍认知不 ...
- JAVA语言规范-线程和锁章节之同步、等待和通知
JAVA语言规范:线程和锁 1 同步 java编程语言提供了线程间通信的多种机制.这些方法中最基本的是同步化,此方法是使用监视器实现的.JAVA中每个对象与一个监视器相关联,一个线程可以加锁和解锁监视 ...
- Java Reference简要概述
@(Java)[Reference] Java Reference简要概述 Reference对象封装了其它对象的引用,可以和普通的对象一样操作. Java提供了四种不同类型的引用,引用级别从高到低分 ...
随机推荐
- Pyhont 网络编程【第一篇】初始Socket网络套接字
一.什么是socket: Socket 别名 “网络套接字”,指网络通信链句柄 其实就是一堆网络信息(ip+端口) 建立起的链接称之为socket,Socket的英文原义是“孔”或“插座”,用来实现不 ...
- 关于XML文档的讲解
1 XML的概述 1.1 什么是XML XML全称为Extensible Markup Language,意思是可扩展的标记语言.XML语法上和HTML比较相似,但HTML中的元素是固定 ...
- python 安装第三方库,超时报错--Read timed out.
Traceback (most recent call last): File "/home/xiaoduc/.pyenv/versions/3.5.0/lib/python3.5/site ...
- 经历:easyui的layout自适应高度布局
在使用easyui的layout布局的时候,在某种情况下,我们会在后续的逻辑中修改一下layout的某个region的高度,那么该怎么做呢? 我就遇到了这样的情况,今天需求经理提出了一个需求:认证用 ...
- MS SQLService中的*= 及 =*
今天看到数据库中的存储过程中,有*= ,于是百度了一下,原来这个SQL2000以前的左连接,以后的版本中开启兼容也是可以用的. 于是拿出来在系统中的表中测试了一下果然如此 例: 有用户表D_user及 ...
- Loadrunner测试json接口
1. loadrunner + json说明 使用lr测试json接口,向服务端发送json格式请求,接收处理返回响应数据. 主要用到函数: 1)web_custon_request 2)web_re ...
- Git的安装以及注册账号等操作
1.安装Git-2.5.1-64-bit.exe 一直下一步直至完成 2.注册github账号 官网地址:https://github.com/github 3.找到一个按钮“New Reposit ...
- OpenJudge/Poj 1753 Flip Game
1.链接地址: http://bailian.openjudge.cn/practice/1753/ http://poj.org/problem?id=1753 2.题目: 总时间限制: 1000m ...
- linux下screen工具的简单使用
有时候,希望即使退出终端了,下次登录linux的时候,还能回到程序的控制界面,这个时候,screen工具就很有用了例如,写了一个从控制台读取屏幕输入的程序input_test,如果从终端退出了,下次登 ...
- [翻译][MVC 5 + EF 6] 10:处理并发
原文:Handling Concurrency with the Entity Framework 6 in an ASP.NET MVC 5 Application 1.并发冲突: 当一个用户编辑一 ...