Portlet开发入门实例

合集下载

jPORTAL及其应用(精)

jPORTAL及其应用(精)
PORTAL及其应用
2008.12
Portlet容器
portlet在portlet容器中运行,portlet容器为portlet提 供必需的运行环境。portlet容器包含portlet(组件)并且 管理它们的生命周期,它也为portlet的参数设置提供持久 化的存储。 portlet 容器不是一个类似于 servlet 容器的独立容器。 它是在 servlet 容器上通过扩展方式实现的,并重用 servlet容器提供的功能。
Radnet
SAP Sitescape Sybase Viador Yahoo And others…
InfoImage
IBM iPlanet Knowledge Track
Portal技术-概念
Portal的组成部件 Portals的结构tal 服务器的组成
局域网资源 局域网
企业目录 Portal 平台
个性化工具
客户应用程序
安全技术
ERP/SCM/CRM 集成 电子商务的基础构件
开发 APIs及Adaptors
Portal主要的功能
角色基于成员资格管理
用户注册 社区定义 角色和责任任务
用户
目录管理
信息访问的限制 介绍和集成
Portal 服务器
合作者
个性化
- Web Server - LDAP - TN3270 - SAP - People Soft - Ariba - 其他
互联网 (SSL)
Portal 网关
Web Server 行政部门
Portal 服务器的组成 其他资源
应用服务器
目录反馈
文件
网关组件
远程客户的初始接触点
访问权限的实施 加密和解码 为客户的通信提供映射和改写服务 HTML 通信 (客户网络浏览器) Netlet 通信 (other TCP/IP clients)

Portal是什么

Portal是什么

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个性化:个性化服务的基本实现使用户能从两方面个性化她的页面:第一,用户可以根据她的自身喜好决定标题条的颜色和控制图标。

servlet开发精品PPT课件

servlet开发精品PPT课件

状态行
响应消息
标题信息
9
版本
状态代码
说明
HTTP/1.1
200
OK
服务器软件 修改日期
大小 (字节)
内容类型
Server: JavaWebServer Last modified: Tuesday, 07-Sep-04 1:14:34 GMT Content-length: 100 Content-type: text/plain
14
Tomcat 配置
选择“Window” “Preferences”
演示:在 Eclipse 中配置 Tomcat 的步骤
15
写在最后
经常不断地学习,你就什么都知道。你知道得越多,你就越有力量 Study Constantly, And You Will Know Everything. The More
Web 应用程序 HTML 文件
Web 应用程序目录结构
图像 Servlet JSP 页面
文档根目录
.war 文件
静Ja态va文Be件a(nhtml, images……)
WEB-INF
Jar 文件 indAepx.phltemt l, login.jsp, contactus.jsp Vboie标owkB签1.ojp文ogk件s.jsp, logo.jpg 标签库描述符文件
收获到取的文文件件
HTTP 获取H图TH像TTPT/P/1b/.a11r.10210.0jpOgK
8
HTTP 协议 3-2
HTT请P求消行 息包括:
请求 消息 响标应题信息
方法
资源名称
版本
GET/POST bar01.jpg
HTTP/1.1

liferay portal

liferay portal

Liferay研究(一):初步在新Tomcat下部署从现在开始,会把我最近在研究的开源Portal Liferay一些心得贴出来。

研究Liferay版本:Liferay Professional 4.0.0柯自聪兄弟写过一系列的Liferay Portal开发文章,参考/ea moi/。

所以基础性内容,本文不再细说,可参考柯自聪的文章或Blog。

(一)部署Liferay PortletLiferay简单部署一个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 等等。

其正式的规范请参考:/xml/ns/Portlet/Portlet-app_1_0. xsdliferay-portlet.xml 定义Portlet默认可用的用户组、默认模板、是否支持多个实例等,规范由/dtd/liferay-Portlet-app_3_5_0.dtdliferay-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。

Portal集成-开发手册

Portal集成-开发手册
40112uapria6x单点登录方案nc60的单点登录方案和nc5x的单点登录方案比较相近但是其注册和登录的url式有所变化并丏增加了一些功能例如可以定义在注册用户信息的身份认证可以由nc系统生成ssokey等等1121注册用户信息的url注册用户信息url基本格式为
前言
本手册主要从Portal门户集成其他产品(包括第三方产品)涉及到单点登录、消息待办两个重要方面入手,详细介绍单点登录、消息待办的实现方案、开发操作步骤,同时给出典型系统集成的示例。
getLoginHelper().processLogin(userVO);
String serverUrl = ServerInfoHelper.getServerUrl();
url = serverUrl +"/portal/auth/"+ aKey;
2、令牌使用说明:第三方系访问的URL则为"/portal/auth/"后加上令牌号,如:http://localhost/portal/auth/23sqa33fdaf
第三章列举了门户常用的一些扩展功能点,以供读者参考。
接下来就详细介绍Portal门户与用友产品、其它第三方产品如何实现单点、待办集成的开发配置过程及其实现机制。
第一章
UapPortal的单点登录基本思路如下:使用数据库来存储各应用系统的访问凭证并关联Portal用户,在Portal登录后通过登录的Portal用户自动找到该应用系统的凭证直接进入各应用系统(每个应用系统一个portlet)。
Map<String, String> extMap =newHashMap<String, String>();
extMap.put(MAXWIN,"N");

Liferay 6开发指南

Liferay 6开发指南

Liferay 6.0开发指南1. 介绍1、已有的应用集成方法:将应用重写为一个Portlet创建一个简单的Portlet整合应用(一般使用Web Service),可以使用iframe或http 代理(可以使用Liferay's WebProxy portlet)。

已有的应用要像部署门户插件一样,把WAR文件部署到应用服务器里,可以使用控制面板或直接复制的方式完成。

Liferay可以自动创建一个Portlet通过iframe集成已有应用。

2、自定义主题风格(Themes)3、自定义布局模板(Layout Templates)4、自定义或扩展门户功能:Hook plugins)Hook plugins可以用来扩展Liferay的核心功能。

5、高级扩展方式:Ext plugins扩展插件可以允许开发人员修改Liferay的核心部分,可以修改任何一个类。

扩展插件部署之后需要重新启动应用服务器。

Liferay 6.0之后用Ext plugins的开发方式替换了原来的Ext Environment开发方式,这样可以简化部署。

之前的扩展环境可以转换为一个独立的插件。

2. 插件开发工具包(THE PLUGINS SDK)2.1 安装Liferay1、下载Liferay Portal bundled with Tomcat;/downloads2、下载Plugins SDK;3、删除liferay-portal-[version]/tomcat-[tomcatversion]/webapps 除ROOT和tunnel-web目录的其他所有文件夹。

4、打开liferayportal-[version]/tomcat-[tomcat-version]/bin目录,运行startup.bat,启动Liferay。

5、http://localhost:8080,默认帐号/密码:test@/test。

6、设置环境变量ANT_HOME,将$ANT_HOME/bin加入到PATH环境变量中。

基于Liferay的Portlet的研究与实现

基于Liferay的Portlet的研究与实现
e tr r e if r t n p r l n n lz si t cu e n a dt n t h wsh w e eo o t tb s d n ep i no mai o t ,a d a ay e t sr tr .I d i o ,i s o o t d v lp a P r e ae s o a s u i o l Ol i ry P r l d i p e n c e s g t e evc s l Lf a o t lme t i a c s i w b s r i . e a a m n s t s n o e Ke r s l ea ;p r e ;p r l y wo d : i ry o t t o t f l a
Pre  ̄新闻、 ol([ tt 1 邮件、 历 、 日 公告板等)包括直接用 ,
Pit ir 出 的、 用 JP输 出 的 , 用 Sre输 r Wre输 n t 调 S 调 e vt l 出 的 , 据 来 源 有 直 接从 数 据 库 取 得 的 、 过 We 数 通 b
e ve Src 取得的等等。 i
Sr c 进行 访 问的 实例 。 ei ve
关键词 :le y pre;门户 ir ; tt fa o l
Re e r h a d i p e e t to ft e Po te a e n Lie a s a c n m lm n a i n o h r ltb s d o f r y D N i ,T N Jnsa O G Qa n A u . n h
主要部分 进行 介绍 。
1. P rlt 1 o t e
图1 f y H e 的体系结构 n r
收 稿 日期 :20 —1 —3 O7 1 0
作者简介 :董倩 (93 , , 士研 究生 , 18 一)女 硕 主要研究方 向为信息管

开源平台Portal liferay介绍

开源平台Portal   liferay介绍

开源平台Portal liferay介绍:一、平台已经提供的功能:1.个性化平台2.基本的portlet组件(用户管理、组织机构管理、角色管理、portlet管理、日历、论坛、博客、文档库、图片库、CMS)3.与其他开源项目的集成单点登陆:CAS工作流:JBPM即时通讯:jabber邮件:4.移动门户5.功能扩展二、平台相关分析1.技术构成:2.权限结构01.用户管理02.组织机构管理03.权限划分:用户-用户组-角色-portlet 3.portal应用的目录结构4.对外服务:已提供服务接口三、二次开发1.jsr168标准01.与servlet的异同Portlet 和 Servlet 的相似之处Portlet 也是 Java 技术的 web 组件Portlet 也是有特定的 container 在管理Portlet 可以动态产生各种内容Portlet 的生命周期由 container 所管理Portlet 和客户端的互动是通过 request/response 的机制Portlet 和 Servlet 的一些不同Portlet 只产生 markup 信息片段,不是完整的网页文件。

而 Portal 会将所有的Portlet markup 信息片段放到一个完整的 Portal 网页。

Portlet 不会和 URL 有直接的关系客户端必须通过 portal 系统才能和 Portlet 互动Portlet 有一些定义好的 request 处理,action request 以及 render request。

Portlet 默认定义 Portlet modes 及窗口状态可以指出在网页中该 Portlet 的哪个功能正在执行及现在的状态。

Portlet 可以在同一个 portal 网页之中存在多个。

Portlet 有一些附加的功能是 Servlet 所没有的Portlet 能够存取及储存永久配置文件及定制资料。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Portlet开发入门实例想索取更多相关资料请加qq:649085085或登录PS;本文档由北大青鸟广安门收集自互联网,仅作分享之用。

1原生Portlet开发这是最简单、最本质的开发方式,直接基于Portlet规范定义的接口开发Portlet。

优点是贴近底层比较灵活,缺点当然就是所有事情都要自己去做。

就好比不用SpringMVC、Struts,直接基于Servlet开发一样。

这种方式比较适合自己开发Portlet框架。

public class NativePortlet implements Portlet {private Logger logger =LoggerFactory.getLogger(NativePortlet.class);private PortletConfig config;@Overridepublic void init(PortletConfig portletConfig) throws PortletException {("初始化Portlet");this.config = portletConfig;}@Overridepublic void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws PortletException, IOException {("处理Action动作");("接收到POST请求,用户名为[{}]",actionRequest.getParameter("userName"));}@Overridepublic void render(RenderRequest renderRequest, RenderResponse renderResponse) throws PortletException, IOException {("处理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)) {// doHelp();} else {throw new PortletException("unknown portlet mode: " + mode);}}@Overridepublic void destroy() {("销毁Portlet");}private void include(RenderRequest request, RenderResponse response, String viewPage) throws PortletException, IOException {response.setContentType("text/html");PortletContext context = config.getPortletContext();PortletRequestDispatcher requestDispatcher =context.getRequestDispatcher(viewPage);requestDispatcher.include(request, response);}}可以看到,在render()方法中,我们要自己处理不同Portlet模式(View,Edit,Help等)的渲染,根据需要做分发。

诸如此类的各种细节都需要我们自己去制定规则,自己处理。

2注解Portlet开发Portlet规范也提供了注解的方式来开发Portlet。

这样不用依赖SpringMVC Portlet等第三方框架,也能比较方便的开发Portlet,又不用处理特别底层的实现细节。

来看一个例子。

public class AnnotatedPortlet extends GenericPortlet {private Logger logger =LoggerFactory.getLogger(AnnotatedPortlet.class);/*** 进入主页面(View模式)* @param request* @param response* @throws Exception*/@RenderMode(name = "view")public void toIndexPage(RenderRequest request, RenderResponse response) throws Exception {getPortletContext().getRequestDispatcher(getInitParameter("ViewPage")).include(request, response);}/*** 保存用户名* @param request* @param response*/@ProcessAction(name = "saveUsername")public void saveUsername(ActionRequest request, ActionResponse response) {String userName = request.getParameter("userName");("保存用户名[{}]", userName);}/*** 保存电子邮件地址* @param request* @param response*/@ProcessAction(name = "saveEmail")public void saveEmail(ActionRequest request, ActionResponse response) {String email = request.getParameter("email");("保存Email[{}]", email);}}使用@RenderMode注解定义不同模式下,Portlet渲染的实现方法。

@ProcessAction注解可以根据动作名称,直接将请求交给标有注解的方法去处理,不用我们自己去实现根据注解分发请求的代码了。

附:其他代码页面代码如下。

使用Portlet规范中定义的标签产生ActionUrl.<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="/jstl/core_rt" prefix="c"%> <%@ taglib uri="/jstl/fmt" prefix="fmt"%><%@ taglib uri="/jsp/jstl/functions"prefix="fn"%><%@ taglib uri="/portlet_2_0" prefix="portlet"%> <portlet:defineObjects /><h3>这是一个演示FORM表单和AJAX提交的示例程序</h3><!-- FORM表单提交实例 --><form action='<portlet:actionURL name="saveUsername"/>'method="POST"><tr><td>用户名:</td><td><input name="userName" type="text" /></td></tr><tr><td><input type="submit" value="表单提交" /></td></tr></form><!-- AJAX提交实例 --><tr><td>Email:</td><td><input id="email" type="text"/></td></tr><tr><input id="ajaxBtn" type="button" value="AJAX提交" /></tr><script> $(".ajaxBtn")。

bind("click", function () {var email = $(".email")。

相关文档
最新文档