文档库 最新最全的文档下载
当前位置:文档库 › portlet和servlet的简单区别

portlet和servlet的简单区别

portlet和servlet的简单区别
portlet和servlet的简单区别

关于Portlet

portal是基于web的,以“应用整合”和“消除信息孤岛”为最终目的,提供单点登陆、内容聚合、个性化门户定制等功能的综合信息系统,完整的portal由portal服务器、portal容器和portlet构成

Portlet portlet是portal中最重要的组件,负责在portal门户系统中呈现信息内容,通过portlet用户很容易定制个性化的页面,portlet由portal容器负责管理、处理请求并返回动态页面,可以作为portal可插即用的界面组件

portal的三种模式JSR168定义了portal的三种模式:浏览、编辑、帮助

Portlet和servlet的区别

相同之处

●都是java技术开发的web组件

●都是由特定的容器在管理

●都可以动态产生各种内容

●生命周期都是由容器管理

●和客户端的交互通过request/response机制

不同之处

●Portlet只产生mark信息片段,而不是完整的网页,而portal会将portlet的mark信息片

段放到一个完整的portal网页中

●Portlet有已经定义好的request处理:action request【processAction(ActionRequest request,

ActionResponse response)】以及render request【render(RenderRequest request,RenderResponse response) 】

●一个页面上可以有多个portlet,而servlet不允许

●Servlet允许设置输出文字的编码信息(character set encoding)

●Servlet可以设置http输出的head

Portlet在Portlet容器内执行,portlet接收portlet产生的内容,通常Portlet容器将这些内容传递给Portlet服务器,Portlet服务器根据这些内容建立portal页面,然后将它传给给客户端呈现,如下图:

Portlet开发入门实例 想索取更多相关资料请加qq:649085085或登录https://www.wendangku.net/doc/e517769182.html, PS;本文档由北大青鸟广安门收集自互联网,仅作分享之用。 1原生Portlet开发 这是最简单、最本质的开发方式,直接基于Portlet规范定义的接口开发Portlet。优点是贴近底层比较灵活, 缺点当然就是所有事情都要自己去做。就好比不用SpringMVC、Struts,直接基于Servlet开发一样。 这种方式比较适合自己开发Portlet框架。 public class NativePortlet implements Portlet { private Logger logger = LoggerFactory.getLogger(NativePortlet.class); private PortletConfig config; @Override public void init(PortletConfig portletConfig) throws PortletException { https://www.wendangku.net/doc/e517769182.html,("初始化Portlet"); this.config = portletConfig; } @Override public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws PortletException, IOException { https://www.wendangku.net/doc/e517769182.html,("处理Action动作");

https://www.wendangku.net/doc/e517769182.html,("接收到POST请求,用户名为[{}]", actionRequest.getParameter("userName")); } @Override public void render(RenderRequest renderRequest, RenderResponse renderResponse) throws PortletException, IOException { https://www.wendangku.net/doc/e517769182.html,("处理Render动作"); WindowState state = renderRequest.getWindowState(); if (state.equals(WindowState.MINIMIZED)) { return; } // doDispatch(); PortletMode mode = renderRequest.getPortletMode(); if (PortletMode.VIEW.equals(mode)) { // doView(); String normalPage = config.getInitParameter("ViewPage"); if (WindowState.NORMAL.equals(state)) { this.include(renderRequest, renderResponse, normalPage); } else { this.include(renderRequest, renderResponse, ""); } } else if (PortletMode.EDIT.equals(mode)) { // doEdit(); } else if (PortletMode.HELP.equals(mode)) {

使用凭证保险库为portlet 提供单点登录 级别:初级Sukumar Konduru, 顾问软件工程师2002年9月01 引言 在WebSphere Portal 服务器上运行的一些portlet 需要向后端远程应用程序提交凭证(例如用户标识和密码)。如果远程应用程序使用的凭证和WebSphere Portal 使用的凭证相同,则这些portlet 可以重用这些凭证。portlet 可以使用Java 验证和授权服务(Java Authentication and Authorization Service,JAAS)API 抽取这些凭证,然后将它们提交给远程应用程序。然而,远程应用程序使用的凭证并不总是可能与WebSphere Portal 使用的凭证相同。因此,为了使用户能够体验单点登录,WebSphere Portal V 4.1 Enable Offering 提供一种凭证保险库(credential vault)机制,portlet 可以使用这种机制安全地设置和检索凭证。 本文提供了四种portlet 应用程序并对它们进行了解释,这四种portlet 使用不同的凭证保险库技术来维护凭证。开发者可以用这些应用程序作为模型来编写自己的portlet。读者应该对开发和安装portlet 以及定制页面有一个基本的了解。 了解凭证保险库 凭证保险库(credential vault)是存储凭证的资源库。凭证的示例包括证书、私钥、用户标识以及密码。WebSphere Portal 提供一个名为CredentialVaultService的类,portlet 可以用它存储凭证并从保险库检索凭证。 保险库适配器(vault adapter)是凭证保险库和CredentialVaultService之间的一个插件模块。WebSphere Portal 提供了一个用门户数据库作为缺省保险库的简单的适配器,还提供了另一个用于Tivoli Access Manager 的适配器。在门户框架中,您可以继承VaultAdapter类,从而开发一个到您自己的资源库的适配器接口。您需要在保险库配置文件WebSphere\AppServer\lib\app\config\services\VaultService.properties中指定任何新创建的适配器。 保险库段(vault segment)是保险库的一个分区。段有两种类型:用户管理的和管理员管理的。门户管理员可以使用Portal Administration 区域的Security 页面上的Credential Vault 选项卡创建管理员管理的段。这个选项卡名为Credential Vault portlet。WebSphere Portal 在缺省保险库中提供一个用户管理的段。 保险库槽(vault slot)是保险库段的一部分;它是用CredentialSlotConfig类表示的。portlet 用保险库槽来存储和检索凭证。在用户管理的段中,您可以用编程方式创建一个保险库槽。管理员还可以用Credential Vault portlet 在管理员管理的段中创建一个槽。这个portlet 可以设置和获取以任一种方式创建的槽中的凭证。CredentialSlotConfig对象包含有关槽的配置信息;例如槽标识、段对象标识以及其他属性。 凭证有两种类型:主动的(active)和被动的(passive)。被动凭证允许portlet 抽取凭证的机密。主动凭证不允许portlet 抽取凭证的机密。不过,主动凭证可以使用标准认证(如基于HTTP 表单的认证或基本认证)向后端应用程序提交凭证。您可以研究WebSphere Portal API 文档中的com.ibm.wps.portletservice.credentialvault.credentials包以了解更多关于凭证的信息。 下面几部分中所描述的portlet 使用以编程方式创建的保险库槽,还使用管理员在缺省保险库中创建的保险库槽。下面描述的所有portlet 均使用被动凭证。

门户网站集成技术 一、总述 本公司门户网站是基于开源Portal进行开发,满足JSR168标准,Portal的核心架构是完全基于Web Services 的开发体系结构。其核心门户服务器(Corporate Portal Server)是门户中最主要的部件,主要提供门户内展现服务、个性化页面、社区、知识目录、管理分级等功能。Enterprise Portal具有最广泛的平台及标准支持,同时支持J2EE 和.Net平台。 二、技术词汇 先来了解一下,门户集成技术所用到技术词汇。 1.Portlet规范: 随着企业级portal的大量涌现,不同提供商创建了不同的portal组件api,即portlet。不兼容给应用服务商portal用户和portal server 提供商都造成了问题。为了消除这些问题,jsr168,即portlet规范提出。 portlet规范,即JSR(java specification request)168, JSR168是Java 规范要求(Java Specification Request ,JSR)的缩写,它为创建Portlet建立标准的API。很多重量级的Portal开发商和开源项目组参与了Java标准化组织(Java Community Process)创建过程,JSR168在2003年10月正式发布。最主要的Portal开发商已经宣布计划支持JSR 168标准。以下就是支持JSR 168标准的Portal开发商:Accenture、Apache Software Foundation、BEA、Boeing、Borland、Bowstreet、Cap Gemini Ernst & Young、Citrix、Computer Associates、CoreMedia、DaimlerChrysler、Documentum、Enformia Ltd、Hewlett-Packard、Interwoven、Macromedia、McDonald Bradley、Novell、Oracle、Plumtree、SAP、Sybase、Tarantella, Inc、Vignette。

EAS门户Portlet制作指南

说明 本指南主要介绍EAS门户Portlet的制作过程。简要阐述了EAS门户的新特性,详细介绍了制作Portlet的过程和步骤,对制作Portlet过程遇到的常见问题进行了说明。 本指南适用于EAS门户Portlet开发人员。

目录 说明.................................................... 错误!未定义书签。目录.................................................... 错误!未定义书签。第1章 EAS门户简介...................................... 错误!未定义书签。 EAS门户新特性 .......................................... 错误!未定义书签。第2章 Portlet制作...................................... 错误!未定义书签。 Portlet制作步骤 ........................................ 错误!未定义书签。配置Portlet信息........................................ 错误!未定义书签。 配置Portlet定义信息................................ 错误!未定义书签。 配置Portlet业务处理信息............................ 错误!未定义书签。向数据库插入相关数据.................................... 错误!未定义书签。 Portlet配置信息与数据库数据的对应关系................... 错误!未定义书签。制作Portlet内容页面,实现业务需求...................... 错误!未定义书签。 Portlet内容页面JSP接口 ............................ 错误!未定义书签。 Portlet内容页面JS接口 ............................. 错误!未定义书签。 Portlet内容页面制作规范与约束....................... 错误!未定义书签。 Portlet内容页面制作常见问题 ........................ 错误!未定义书签。 Portlet内容页面HTC控件的替换....................... 错误!未定义书签。 门户优化合并且删除了部分js ......................... 错误!未定义书签。第3章 Portlet业务设置.................................. 错误!未定义书签。 关联Portlet业务设置页面................................ 错误!未定义书签。 Portlet业务设置页面JSP接口 ............................ 错误!未定义书签。 Portlet业务设置页面JS接口 ............................. 错误!未定义书签。 第4章 Portlet的使用.................................... 错误!未定义书签。第5章 Portlet相关SQL脚本的导出和提交.................. 错误!未定义书签。 示例SQL ................................................ 错误!未定义书签。脚本提交位置............................................ 错误!未定义书签。 附录1 Portal配置文件拆分说明 ........................... 错误!未定义书签。附录2 PortletUtil API................................... 错误!未定义书签。附录3 Ajax之Buffalo开发指南 ........................... 错误!未定义书签。附录4门户Portlet之间通信 .............................. 错误!未定义书签。

Portal是什么? 在了解portlet之前有必要先了解portal。在Portlet规范里是这样讲的:“portal 是一种web应用,通常用来提供个性化、单次登录、聚集各个信息源的内容,并作为信息系统表现层的宿主。聚集是指将来自各个信息源的内容集成到一个web页面里的活动”。 Portal的功能可以分为三个主要方面: 1. Portlet容器:Portlet容器与servlet容器非常类似,所有的portlet都部署在portlet容器里,portlet容器控制portlet的生命周期并为其提供必要的资源和环境信息。Portlet容器负责初始化和销毁portlets,向portlets传送用户请求并合成响应。 2. 内容聚集:Portlet规范中规定portal的主要工作之一是聚集由各种portlet应用生成的内容,我们将在“如何创建Portal页面”部分对此做进一步讨论。 3. 公共服务:portlet服务器的一个强项是它所提供的一套公共服务。这些服务并不是portlet规范所要求的,但portal的商业实现版本提供了丰富的公共服务以有别于它们的竞争者。在大部分实现中都有望找到的几个公共服务有: o 单次登录:只需登录portal服务器一次就可以访问所有其它的应用,这意味着你无需再分别登录每一个应用。例如一旦我登录了我的intranet网站,我就能访问mail 应用、IM消息应用和其它的intranet应用,不必再分别登录这些应用。 Portal服务器会为你分配一个通行证库。你只需要在mail应用里设定一次用户名和密码,这些信息将以加密的方式存储在通行证库中。在你已登录到intranet网站并要访问mail应用的时候,portal服务器会从通行证库中读取你的通行证替你登录到mail服务器上。你对其它应用的访问也将照此处理。 o个性化:个性化服务的基本实现使用户能从两方面个性化她的页面:第一,用户可以根据她的自身喜好决定标题条的颜色和控制图标。第二,用户可以决定在她的页面上有哪些portlets。例如,如果我是个体育迷,我可能会用一个能提供我钟爱球队最新信息的portlet来取代股票和新闻portlets。 一些在个性化服务方面领先的商业实现版本允许你建立为用户显示什么样的应用所依据的标准(如收入和兴趣)。在这种情况下,可以设定一些像“对任何收入为X的用户显示馈赠商品的portlet”和“对任何收入为X的用户显示打折商品的portlet”这样的商业规则。 此外还有一些公共服务,比如机器翻译,是由portal服务器将portlet生成的内容翻译为用户要求的语言。大部分的商业portal服务器都支持手持设备访问并具有针对不同的浏览终端生成不同内容的能力。 Portlets是什么? 与servlets类似,portlets是部署在容器内用来生成动态内容的web组件。从技术角度讲portlet是一个实现了javax.portlet.Portlet接口的类,它被打包成war文件格式部署到portlet容器里。 Portlets在以下方面与servlets相似: 1. portlets由特定的容器管理。 2. portlets生成动态内容。

Liferay Portal4-Portlet development guide Joseph Shum Alexander Chow Jorge Ferrer

Liferay Portal4-Portlet development guide Joseph Shum Alexander Chow Jorge Ferrer 1.0 Copyright?2000,2007Liferay Inc.

Table of Contents Preface (v) 1.Introduction (1) 1.Portlet Development vs Servlet Development (1) 2.Java Portlet Specification(JSR-168) (1) 3.Recommended Tools (2) 3.1.JDK1.5.0or JDK1.4.2 (2) 3.2.Jikes1.22or Jikes1.21 (2) 3.3.Ant1.6.5 (2) 3.4.Subversion or a Similar Version Control System (2) 4.Portlet development environments (3) 2.Liferay Specific Descriptors (4) 1.Extended Portlet Definition (4) https://www.wendangku.net/doc/e517769182.html,anizing Portlets in Categories (9) 3.Liferay Portlet Frameworks (10) 1.Writing a Simple JSPPortlet (10) 2.StrutsPortlet Tutorial (12) 2.1.Writting a Very Simple Struts Portlet (12) 2.2.Adding an action (23) 2.3.Conclusion (32) 4.Portlet deployment (33) 1.Liferay Hot Deploy (33) https://www.wendangku.net/doc/e517769182.html,yout Templates,Portlets and Themes (33) 2.Manual Deployment (33) 5.Liferay Services (35) 1.Security and Permissions Service (35) 1.1.Introduction (35) 1.2.Overview (35) 1.3.Implementing Permissions (35) 1.4.Summary (44) https://www.wendangku.net/doc/e517769182.html,rmation (44) https://www.wendangku.net/doc/e517769182.html,er service (46) 6.Conclusions (48)

portal技术原理解析(Common Portlet Repository) 一。在看这篇文章之前你可能需要以下知 1.RequestDispatcher.forward()方法 RequestDispatcher接口所定义的forward()方法可以将HTTP请求转送给其他Web资源(例如Servlet、JSP或HTML)进行处理,并产生HTTP回应。 调用forward()方法时必须注意下列三点: *在HTTP回应被“确认”(committed)以前才能调用forward()方法(这里的“确认”是指将HTTP回应的内容主体送回用户端),否则将拋出IllegalStateException异常。 *调用forward()方法后,原先存放在HttpResponse对象中的内容将会自动被清除 *request.getRequestDispatcher(url).include(request, response)就是转向指定url的意思 2.RequestDispatcher.include()方法 RequestDispatcher接口的include()方法与forward()方法非常类似,惟一的不同在于:利用include()方法将HTTP请求转送给其他Servlet后,被调用的Servlet虽然可以处理这个HTTP 请求,但是最后的主导权仍然是在原来的Servlet。换言之,被调用的Servlet如果产生任何HTTP回应,将会并入原来的HttpResponse对象。 https://www.wendangku.net/doc/e517769182.html,mon Portlet Repository是一个资源库,他包含了很多模块,可以提供个用户选择。每一个Common Portlet Repository中的模块都由Portlet Deployment Discriptor来定义。而用户的选择将会由Personal Portal Config这个文件来保存。在用户下次登录时,系统自动读取Portlet ID ,提取信息显示用户的界面。 二。下面是转载的一篇关于portal原理的文章:(https://www.wendangku.net/doc/e517769182.html,/topic/7005) 1.Portal用例 读者可以在下面三个网站上注册自己的用户,体会Portal的功能。 https://www.wendangku.net/doc/e517769182.html, https://www.wendangku.net/doc/e517769182.html, https://www.wendangku.net/doc/e517769182.html,/ My MSN的功能最灵活强大,用户可以任意拖放操作栏目(column)和内容版块(content)的位置和个数。 My Liferay只能选择固定的栏目(column)布局,但可以在本栏目(column)内移动内容版块(content)的位置。 My Yahoo只能选择固定的栏目(column)布局,而且不能移动内容版块(content)的位置。 Portal的结构分为三层。 (1) Page (2) Column,或者称为Pane (3) Content,或者称为Portlet

Portlet学习笔记 1. Portal基础 1.1. 什么是Portal ]s-e r d3S&j:h O Portal 一词是在Internet 的发展中提出来的,原意为“门户网站”即是人们上网后想要访问的第一个网站,例如雅虎、搜狐这类网站。在这个阶段,Portal 还是作为一个面向广泛群体的信息平台,把人们所需要的各种信息(或者访问这类信息的途径)聚合在一起,是一个信息集中平台。很快企业应用中也开始采用Portal 这个概念,根据Portal 在企业应用中的不同作用,业界对Portal 有着不同的定义如企业信息门户、知识门户、专业门户、应用门户等等。随着时间的推移,业界对Portal 的定义趋向一致,也就是在JSR168 种对Portal 的定义:y I S-|{ portal爱好者 _ H |p.N F J h A portal is a web based application that ?commonly- provides personalization, single sign on, content aggregation from different sources and hosts the presentation layer of Information Systems. Aggregation is the action of integrating content from different sources within a web page. A portal may have sophisticated personalization features to provide customized content to users. Portal pages may have different set of portlets creating content for different users. https://www.wendangku.net/doc/e517769182.html, T1Z(_1G'r o c,l 从上述定义中我们可以知道Portal 是企业用户访问各种企业信息、应用的入口,如下图: o o"M ].|T*U 1.2. 什么是Portlet 作为企业信息、应用的入口,Portal 的每个页面(Page )包含了多种不同的信息,一般来说Portal 的显示如下:K w+@h l ,z9[+Ss}*^n (v Y

Liferay研究(一):初步在新Tomcat下部署 从现在开始,会把我最近在研究的开源Portal Liferay一些心得贴出来。研究Liferay版本:Liferay Professional 4.0.0 柯自聪兄弟写过一系列的Liferay Portal开发文章,参考https://www.wendangku.net/doc/e517769182.html,/ea moi/。所以基础性内容,本文不再细说,可参考柯自聪的文章或Blog。 (一)部署Liferay Portlet Liferay简单部署一个portlet并不是很复杂,通过WEB-INF目录下的portlet.xm l、liferay-portlet.xml、liferay-display.xml描述即可。 描述 portlet.xml portlet.xml用来定义Portlet的诸如部署名称、初始化参数、支持模式、re source bundle等普通的初始化信息,包括:portlet-name、display-name、portlet-class、init-param、expiration-cathe、supports、portlet-info、security-role-ref 等等。其正式的规范请参考:https://www.wendangku.net/doc/e517769182.html,/xml/ns/Portlet/Portlet-app_1_0. xsd liferay-portlet.xml 定义Portlet默认可用的用户组、默认模板、是否支持多个实例等,规范由https://www.wendangku.net/doc/e517769182.html,/dtd/liferay-Portlet-app_3_5_0.dtd liferay-display.xml 定义Portlet默认的所属类别。Liferay Portal对Portlet实行按类别管理和划分用户权限。 Liferay是基于Struts Template页面模版技术来实现页面的,所以Liferay默认提供了com.liferay.portlet.StrutsPortlet这个Portlet Class来完成Portlet处理的;当然为了简单对普通jsp页面的处理,Liferay也提供了com.liferay.portlet.JSPPortlet等其他Portlet Class。 Liferay扩展了Portlet Mode,增加了about,config,preview,print等几种模式。所以,开发人员基于Liferay进行扩展Portlet Class需要基于com.liferay.portlet.Life rayPortlet。当然,允许直接继承javax.portlet.GenericPortlet进行扩展。 (二)部署Liferay应用在新下载的Tomcat上 这一块耗费我不少时间,因为Liferay采用了其修改后的Tomcat(实际上是Tomc at5.5,这是我后来才知道的)。 但我很不喜欢Liferay这种绑定方式,而且默认开发必须采用其层层Ant Build方式,并且绑定其Tomcat或其他其修改后提供的server。——当然,在Liferay可能认为这样可以减少开发人员对环境配置的关心。 让我来看看,如何在一个新下载的Tomcat5.0.28上成功部署Liferay应用:

金蝶BOS门户表结构描述文档BOS门户Portlet开发速成攻略BOS门户Portlet开发速成攻略

金蝶BOS门户Portlet开发门户 目录 1 新建业务Portlet页面 (3) 1.1 描述 (3) 1.2 约束 (3) 1.3 示例页面 (3) 2 修改配置文件 (4) 2.1 描述 (4) 2.2 Portlets配置文件 (4) 2.3 Tiles配置文件 (5) 3 编写SQL语句 (6) 3.1 描述 (6) 3.2 SQL内容 (6) 3.3 执行SQL (8) 4 配置业务Portlet到页签中 (8) 4.1 描述 (8) 4.2 确认Portlet插入成功 (8) 4.3 配置Portlet到页签中 (8) 5 附录 (9)

金蝶BOS门户表结构描述文档 1 新建业务Portlet页面 1 新建业务Portlet页面 1.1 描述 业务Portlet页面即指Portlet中展现的内容页面,门户框架展现Portlet之后,Portlet会根据配 置去加载对应的业务页面,业务页面具体展现什么门户框架不关心 1.2 约束 ●业务页面是一个页面,但不能是一个完整的HTML文档,只是一个文档片段,不能包含 ,,等标签 以下错误示例:Portlet内容页面不应该包含蓝色部分标签 EAS

...
●业务页面存放位置通常为eas \server\deploy\eas.ear\cp_web.war\html\portlet下面对应的业 务目录下面。对于其他系统集成到门户中而开发的Portlet可选择放到eas \server\deploy\eas.ear\cp_web.war\的其他目录 1.3 示例页面 ●eas \server\deploy\eas.ear\cp_web.war\html\portlet下面新建test文件夹,再新建一个页面 test.jsp

把基于jsr168的Portlet开发的一些小技巧和小知识记录下来,作为一种备忘和知识积累,便于以后察看。 1. javabean的写法 - java页面的代码: public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException { request.setAttribute("username","liuzhaoy ##################"); } - jsp页面的写法 <%=username %> - 展示结果 2. 页面编码的写法 <%@ page import="javax.portlet.*, java.util.*" session="false"%> <%@ taglib uri="https://www.wendangku.net/doc/e517769182.html,/portlet" prefix="portletAPI" %> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> 如果让其支持汉语,就改为:gb2312喽,呵呵。 3. 图片路径的写法
"> 其中renderResponse.encodeURL表示编码。目录结构截图: 4.状态的保存 怎么让一个textbox框保持其状态呢,就是输入框里的内容在点击提交按钮后信息不会丢失。

目录 1 概述 (3) 2 基本概念 (3) 2.1 Portal定义 (3) 2.2 Portlet定义 (4) 2.3 Portal页面的元素 (5) 2.4 Portlet生命周期 (6) 2.5 Portlet标签库 (7) 2.6 JSR168和WSRP (7) 3 Portal的功能 (8) 4 部分开源Portal框架的分析和比较 (9) 4.1 评价标准 (9) 4.2 选中的开源Portal框架 (10) 4.3 评价结果 (10)

门户(Portal)一词从最初被提出,到2003年十月发布的Portlet1.0规范以及2005年十二月重新投票通过的Portlet2.0规范以来,已经有很长一段历史了。非常流行的Spring框架也在2.0 M1版本将Potlet MVC框架融入进来。但Portlet MVC框架和现在流行的MVC框架的无缝整合还是不太理想,直接影响Portlet技术的普及率。那么此技术究竟是历久弥新的技术还是日渐消亡,最终被取代的技术?不是本文所要说明的重点。本文主要是从一个Portal初学者的角度对Portal的主要概念,应用场景等等做一些简单的描述,作为本阶段Po rtal研究的一个总结报告,并为将来做更深层次的研究做好准备。 这部分主要针对JSR168规范中的主要内容做了一些说明。 2.1 Portal定义 在Portlet规范中是这样描述Portal的,“Portal是一种Web应用,通常用来提供个性化、单点登录、聚集各个信息源的内容,并作为信息系统表现层的宿主。聚集是指将来自各个信息源的内容集成到一个Web页面里的活动”。 Portal功能可以主要分为以下几个方面: 1) 个性化:个性化服务的基本实现使用户能从两个方面个性化他的页面:第一,页面的个性化,用户用户根据自身喜好决定标题条的颜色和图标;

PS:写这些文章的目的是用来记录我学习Liferay Portal 6.x的一个过程,如有错误欢迎指出一起学习。 准备 Liferay版本:6.0.4 开发模式:普通插件模式(非Ext) Struts版本:2.1.8.1 环境 使用到的Struts2相关jar包如下: antlr-2.7.2.jar commons-fileupload-1.2.1.jar freemarker-2.3.15.jar ognl-2.7.3.jar struts2-core-2.1.8.1.jar struts2-portlet-plugin-2.1.8.1.jar xwork-core-2.1.6.jar 工程目录如下:

参考内容 参考Struts2自带的portlet示例struts2-portlet-2.1.8.1.war,在Struts 解压包下面的apps目录里面,这个示例是基于Pluto (https://www.wendangku.net/doc/e517769182.html,/pluto/)Apache的Portal实现,但开发的都是portlet,所以可以参考这个。 开发示例代码

portlet.xml Xml代码 1. 2.StrutsPortlet 3.Struts Test Portlet 4. 5.org.apache.struts2.portlet.dispatcher.Jsr168Dispatcher 6. 7. 8. 9.viewNamespace 10./strutsDemoView 11. 12. 13. 14. 15.defaultViewAction 16.index 17. 18. 19. 20.editNamespace 21./strutsDemoEdit 22. 23. 24. 25.defaultEditAction 26.index 27. 28. 29.0 30. 31. 32. 33.text/html 34.view 35.edit 36. 37. 38.

Portal技术标准简介 关键字: portal JEE作为建立在Java平台上的企业级应用解决方案,经过这些年不断发展,已经成为企业级开发的工业标准和首选平台。众多厂商如IBM,BEA和Oracle等都围绕该规范推出了相应的,功能强大的产品。JEE规范组中最受业界认同和取得最大成功的就是JEE Web层面规范,发展到今天,已经步入门户(Portal)的时代。 门户,简言之就是提供包括内容聚合、单点登陆、个性化定制和安全管理等服务的基础Web 平台。在Java EE里,Portal有两种标准:JSR 168和JSR 286。同时OASIS组织还为Portal的远程调用定义了相关WebServicds标准WSRP。 名词解释 名词解释 Portal 门户,提供包括内容聚合、单点登陆、个性化定制和安全管理等服务的基础Web平台。 Portlet Portlet 是基于web 的Java 组件。它由Portlet 容器管理,能够处理请求,产生动态内容。Portlet 被Portal 用作为可插拔的用户接口组件,为信息系统提供展现。由Portlet动态产生的内容也被叫做fragment 。fragment 是遵循某种规则的标记(例如:HTML,XHTML,WML),可与其他的fragment一起建立一个完整的文档。一般一个Portlet 产生的内容和其他的Portlet产生的内容聚集在一起形成Portal 网页。 Portlet Container Portlet 在Portlet 容器中运行,Portlet 容器为Portlet 提供必需的运行环境。Portlet 容器包含Portlet (组件)并且管理它们的生命周期,它也为Portlet 的参数设置提供持久化的存储。Portlet 容器不是一个类似于servlet 容器的独立容器。它是在servlet 容器上通过扩展方式实现的,并重用servlet 容器提供的功能。从Portal 的角度来看,Portlet Container 是Portal 平台所提供的众多服务之一。 JSR168,JSR286 由于越来越多的公司开发了各自的Portal 组件和基于其的Portal 产品(如Bea, IBM, Oracle, Sun, Sybase, Novell, SAP, Jetspeed, Vignette 等.这种互不兼容的接口实现不断带给程序提供商各种问题和麻烦, 为了解决这种问题, JCP 发布了 JSR168 (Java Specification Request), Portlet Specification, 用以提供不同Portal 和Portlets 之间的互用性。JSR 286 是168 规范的延伸,是目前最新标准规范。 SSO Single Sign-On 即单点登陆。当一个大系统中存在多个子系统时,用户只需要正确登陆其中任何一个子系统,就可以在各个子系统中来回自由切换和使用授予该用户权限的各种资源。一般可以分为两种类型:Web应用之间的单点登陆和门户Web 应用和它所连接的后台系统之间的单点登陆。SSO是任何一个门户产品必须解决的问题,必须提供的服务。 WSRP WSRP 是OASIS 组织的一个规范,它定义了远程门户网站的Web 服务。通过Web Service 将远程内容抓取到本地,最后通过本地内容聚合引擎展示出来。

错误!未找到目录项。 Portal、Portlet 和Web 页面的概念和关系 Portal 技术对企业越来越重要,新一代的Portal 技术在企业信息化建设中,起到关键性的作用。Portal 为用户提供一个应用、内容、业务流程的单点式的入口,也为用户提供一个互动、交流、协同办公的单点式空间。Portal 为不同用户群提供信息和服务,同时也为开发人员提供一个强大的、高效益的Web 框架。Portal 技术如此至关重要,Portal 到底是什么?Portlet 又是什么?它们跟Web 页面有什么关系?下面我们 将描述Portal、Portlet、Web 页面、页面版式、页面风格等概念,与它们之间的关系。 Portal 的概念 Portal 是Web 门户系统,遵循JSR-168 规范的Web 应用平台。门户系统的功能模块叫做Portlet。每个Portlet 是一个独立的功能模块,可以独立完成某项任务,或者和其它的Portlet 协作,完成某一项任务。Portal 的概念打破了传统Web 页面的概念。在传统的Web 页面里,每一张页面都是一个完整的页面,无 法分开的页面。在Portal 的页面里,每一张页面是由Portlet 模块组装而成的。Portal 容器在显示Portlet 页面之前,根据页面的布局信息、页面上的Portlet 窗口信息,将Portlet 聚合到一起后,再显示给用户。ID-Portal 是一套完全遵循JSR-168 规范的门户系统,但ID-Portal 更是一套安全的、灵活的、容易部署的、容易使用的Web 应用平台和Web 开发平台。新一代的ID-Portal 更打破了以前Portal 里的页面聚合的概念,把页面组装的功能直接提供给终端用户,为客户降低Web 系统开发和管理的成本,提供开发和管理的效率。客户可以根据业务的需求,随心所欲的将页面组装起来。 Portlet 的概念 Portlet 是一种Web 组件,每一个Portlet 就是一个功能模块,部署到Portal 平台时,可以独立完成某一项任务,或者与其它的Portlet 模块组成一个流程,每个Portlet 完成一个任务中的一部分,聚合在一起,共同完成整个任务。 Portlet 是JSR-168 定义的规范,而ID-Portal 平台是完全遵循JSR-168 规范的Web 平台。Portlet 容器运行Portlet,并管理它们的生命周期。JSR 168 定义了Portlet 与Portlet 容器之间的契约,可是它没有定义Portlet 容器与Portal 之间的契约。Portal 的实现留给了Portal 供应商,如龙方公司。 在ID-Portal 平台上,Portlet 模块是用来组装Web 页面和Web 应用系统的部件,就像电脑部件用来组装电脑一样。在ID-Portal 平台组装Web 应用的时候,是先用Portlet 组件组装成完整的页面,许多页面组成Web 页面流程,来完成应用系统的功能。 Portlet 在Web 页面上占用页面的一部分空间,提供页面的某一个特殊功能,例如,显示新闻内容、显示当天天气预报、显示用户日程和待办事宜,等等。每个Portlet 在页面上占用的空间,叫Portlet 窗口。每个窗口代表一个Portlet,其实更确切的说,是代表一个Portlet 实例。每个Portlet 窗口都有一个标题条和一些按钮,包括最小化和最大化按钮。 在ID-Portal 系统里,这些窗口是相互独立开发、各负责不同的应用功能。用Portlet 组装起来的页面叫做Portlet 页面。Portlet 页面可以由一个或多个Portlet 窗口组成,每个Portlet 窗口又分为两部分:一个是外观,它决定了Portlet 窗口的标题条、控制和边界的样式;另一个是Portlet 内容,它由Portlet 应用填充。Portal 服务器决定了Portal 页面的整体观感,像标识、标题条颜色、控制图标等。通过修改几个JSP 和CSS 模板文件就可以改变Portal 的整个观感。 Web 页面的概念 这里所指的Web 页面,也是我们在前面提过的Portlet 页面。Portlet 页面由Portlet 模块组装而成。一般的 Portlet 页面分为三大部分:页眉,页脚和Portlet 页面区。页眉一般显示公司商标或一些其它信息,而页脚

相关文档