Portal是什么_portal应 中-程序员宅基地

技术标签: 活动  servlet  servlets  Portal  服务器  portlet  url  

在了解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生成动态内容。
3.        portlet的生命周期由容器管理。
4.        portlets通过请求/响应模式与web客户端交互。

  Portlets在以下方面与servlets相异:
1.        portlets只能生成标记段,而不是整个文档。
2.        portlets没有可供直接访问的URL地址。不过你还是能够让别人通过URL访问到portlet,你可以把包含该portlet的页面的URL发给他。
3.        portlets不能随意地生成内容,这是因为portlet生成的内容最终要成为portal页面的一部分。如果portal服务器要求的是html/text类型,那么所有的portlets都应生成html/text类型的内容。再比方说,如果portal服务器要求的是WML类型,那么所有的portlets都应生成WML类型的内容。

  portlets还提供了一些附加的功能:
1.        设置参数的持久化存储:portlets提供了一个PortletPreferences对象用来保存用户的设置参数。这些参数被存入一个持久化数据库,这样服务器重启后数据依然有效。开发者不必关心这些数据存储的具体实现机制。
2.        请求处理:portlets提供了更为细粒度的请求处理。对于用户在portlet上动作时向该portlet发出的请求(一种称为活跃期的状态),或者因用户在其它portlet上动作而引发的刷新页面请求,Portal服务器提供了两种不同的回调方法来处理。
3.        Portlet模式:portlets用模式的概念来表示用户在做什么。在使用mail应用的时候,你可能会用它来读信、写信或检查信件――这些都是mail应用的预定功能,Portlets通常以VIEW模式提供这些功能。但还有一些活动,像指定刷新时间或(重新)设置用户名和密码,这些活动允许用户定制应用的行为,因此它们用的是EDIT模式。Mail应用的帮助功能用的是HELP模式。

  如果仔细想想其实这里面并没有什么新东西,它们反而大部分都是普通的业务需求。Portlet规范的作用在于它提供了一个抽象层,这才是它对所有与之相关的人-最终用户、开发者和管理员-的价值所在。

  作为一个开发者,我会将所有与VIEW模式有关的业务逻辑放入doView()方法,将与应用配置有关的业务逻辑放入doEdit()方法,将与帮助有关的逻辑放入doHelp()方法

  这就简化了管理员对portlet应用的访问控制管理,因为他只需改变portlet的访问权限就能决定用户能做什么。例如,如果mail应用的一个用户能够在EDIT模式下设定用户名和密码,那么就可以断定他具有EDIT模式访问权限。

  不妨考虑这样一种情形:我是一个intranet网站的管理员,我的公司买了一个能显示新闻信息的第三方portlet应用,该应用允许用户指定跟踪新闻更新的URL地址,我想借助它为用户显示公司的内部新闻。另一个需求是我不想让用户通过该应用来跟踪任何其它的新闻信息来源。作为管理员,我可以为所有的用户指定一个用于内部新闻更新的URL地址,同时通过改变portlet应用的部署描述符来取消其它人修改该地址的权限。

  由于所有的portlet应用都具有相似的UI界面,因此采用portlets可使网站对最终用户更具吸引力。如果她想阅读任何一个应用的帮助信息,她可以点击帮助按钮;她也知道点击编辑按钮能让她进入应用的配置屏。标准化的用户界面使你的portlet应用更引人。

4.        窗口状态:窗口状态决定了portal页面上留给portlet生成内容的空间。如果点击最大化按钮,portlet将占据整个屏幕,成为用户唯一可用的portlet;而在最小化状态,portlet只显示为标题条。作为开发者应当根据可用空间的大小来定做内容。

5.        用户信息:通常portlets向发出请求的用户提供个性化的内容,为了能更加行之有效,portlets需要访问用户的属性信息,如姓名、email、电话等。Portlet API为此提供了用户属性的概念,开发者能够用标准的方式访问这些属性,并由管理员负责在这些属性与真实的用户信息数据库(通常是LDAP服务器)之间建立映射关系。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ceun/article/details/1061676

智能推荐

微信公众号生成带参数的二维码_微信公众号生成带参数的二维码登录-程序员宅基地

文章浏览阅读5.3k次。官网功能介绍:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp14434335421、获取access_token:根据公众号的appid和appsecket得到access_tokenhttps://mp.weixin.qq.com/debug?token=1795470382&lang=zh_CN2、获取ti..._微信公众号生成带参数的二维码登录

QT 在windows安装步骤 两种方法_qt windows安装-程序员宅基地

文章浏览阅读1.1w次。转自:https://www.cnblogs.com/mrcp/archive/2012/11/05/2754524.html折腾了2个小时,参考了网上的资料,终于把QT装好了要让qt能使用,两种套路都可行:1、安装傻瓜包QtSDK,大概1GB多,你要用到的所有东西都在这里面,按照默认的安装,装好后直接打开qt creator就可以用。2、自己组装:(1)下载Qt Creator (qt-crea..._qt windows安装

NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估-程序员宅基地

文章浏览阅读885次,点赞28次,收藏29次。在本文中,我们将研究使用 Deepset 的 SQUAD2 模型进行问答以及使用SQuAD v2 指标评估模型,我们将使用 model —deepset/minilm-uncased-squad2。

L298N电机驱动模块的接线使用与代码实现_l298n电机驱动模块接线-程序员宅基地

文章浏览阅读8.2w次,点赞172次,收藏1.4k次。#include "iostm8s208mb.h"#define u8 uint8_t#define u16 uint16_t#define u32 uint32_ttypedef unsigned char uint8_t;typedef unsigned short uint16_t;typedef unsigned long uint32_t;// 关于LED灯的宏定义#define LED2 PI_ODR_ODR2 //输出量#define LE_l298n电机驱动模块接线

腾讯云发布新品数据编排平台(dop)-与大数据生态紧密结合,提供通用数据编排服务...-程序员宅基地

文章浏览阅读1.7k次。作者介绍毛宝龙腾讯高级工程师,Alluxio PMC & Maintainer,Apache Ozone committer,腾讯 Alluxio OTeam 开源协同团队负责人。主要负责腾讯 Alluxio 的研发和落地工作和 Apache Ozone 的文件系统方向的研发工作。DOP(Data Orchestration Platform)是腾讯推出的数据编排平台服务。定位通用数据编..._编排平台

Myeclipse 10.0 + Hibernate 4.3.5 连接 Oracle 11G_ssh hibenate4.3 jpa oracle11-程序员宅基地

文章浏览阅读1k次。今天从下午开始按照J2EE企业应用实战整合Myeclipse 10.0 + Hibernate 4.3.5 连接 Oracle 11G,在网上找了很多资料,到晚上才搞定。有几个地方要特别注意,我在代码中会详细讲解。现在上完整的代码:先按照书里的要求引入%\hibernate-release-4.3.5.Final\lib\required下面所有的jar包。文件1(News_ssh hibenate4.3 jpa oracle11

随便推点

使用SSM实现校园兼职管理平台系统_.buildfalsejson-程序员宅基地

文章浏览阅读911次,点赞4次,收藏6次。项目编号:BS-PT-056该项目是一个大学生校园兼职平台。该平台使用Java语言开发后台业务逻辑,运用了SpringMVC+Spring+MyBatis框架进行搭建,数据库服务器采用MySQL5.6对数据进行持久化。其主要功能有:兼职招聘、论坛交流、在线聊天、个人中心、信箱留言、登录注册等功能。软件架构或技术说明:后台:SpringMVC+Spring+MyBatis、mysql前台:jquery、layui部署环境:1.服务器:tomcat82.运行环境:.._.buildfalsejson

在Linux上安装QQ_qqlinux版本(2),2024年最新大厂Linux运维高级面试题汇总解答_archlinux 安装 ntqq-程序员宅基地

文章浏览阅读704次,点赞5次,收藏14次。最全的Linux教程,Linux从入门到精通。_archlinux 安装 ntqq

微信小程序分享到朋友圈带参数_showsharemenu 自定义 无效-程序员宅基地

文章浏览阅读2.6k次。微信转发朋友圈功能,目前处于测试阶段,先放个官方文档地址官方文档地址先上代码,这是本人实测可以使用的。onLoad: function(t) { console.log('option', t) wx.showShareMenu({ withShareTicket: true, menus: ["shareAppMessage", "shareTimeline"] }), this.isLogin && this.$store.dispatch(_showsharemenu 自定义 无效

Android组件系列----ContentProvider内容提供者 和 android:authorities-程序员宅基地

文章浏览阅读9k次。authorities 是provider所在的包的名字+provider本身定义的名称 ---zgs 【正文】一、ContentProvider简介:ContentProvider内容提供者(四大组件之一)主要用于在不同的应用程序之间实现数据共享的功能。ContentProvider可以理解为一个Android应用对外开放的接口,只要是符合它所定义的Uri格式的请求,均可以正...

Matlab2019 中文显示问题(乱码与方框)_2019中文文字乱码-程序员宅基地

文章浏览阅读2.8w次,点赞46次,收藏23次。对MATLAB2019b的中文显示问题做出整理,(UI界面和编辑器)原因:中文字体库缺失导致。方法:设置MATLAB的字体为系统已有中文字体主页预设字体桌面代码字体选择 Microsoft YaHei UI同时勾选 “使用系统字体”主页预设字体自定义左边选编辑器,语言选择 Microsoft YaHei UI..._2019中文文字乱码

PopUpWindow使用详解(二)——进阶及答疑_watch_outside_touch-程序员宅基地

文章浏览阅读631次。上篇为大家基本讲述了有关PopupWindow的基本使用,但还有几个相关函数还没有讲述,我们这篇将着重看看这几个函数的用法并结合源码来讲讲具体原因,最后是有关PopupWindow在使用时的疑问,给大家讲解一下。一、常用函数讲解这段将会给大家讲下下面几个函数的意义及用法,使用上篇那个带背景的例子为基础。public void setTouchable(boolean touch..._watch_outside_touch