iteye_20747 2010-01-18 19:44
浏览 155
已采纳

关于portlet的疑问

最近参与的一个项目,其中有些技术未接触过。
请教下高手。
jetspeed是什么?portlet是什么?
在jetspeed如何上配制portlet?
portlet文件配制?
servlet与portlet的区别?

  • 写回答

1条回答 默认 最新

  • hermit1216 2010-01-18 20:46
    关注

    Jetspeed 是一个开放源代码的企业信息门户(EIP)的实现,使用的技术是Java和XML。用户可以使用浏览器,支持WAP协议的手机或者其它的设备访问Jetspeed架设的信息门户获取信息。Jetspeed扮演着信息集中器的角色,它能够把信息集中起来并且很容易地提供给用户。

    “Portlets是一种Web组件-就像servlets-是专为将合成页面里的内容聚集在一起而设计的。通常请求一个portal页面会引发多个portlets被调用。每个portlet都会生成标记段,并与别的portlets生成的标记段组合在一起嵌入到portal页面的标记内。”(摘自Portlet规范,JSR 168)
      Portal的功能可以分为三个主要方面:
      1. Portlet容器:Portlet容器与servlet容器非常类似,所有的portlet都部署在portlet容器里,portlet容器控制portlet的生命周期并为其提供必要的资源和环境信息。Portlet容器负责初始化和销毁portlets,向portlets传送用户请求并合成响应。
      2. 内容聚集:Portlet规范中规定portal的主要工作之一是聚集由各种portlet应用生成的内容,我们将在“如何创建Portal页面”部分对此做进一步讨论。
      3. 公共服务:portlet服务器的一个强项是它所提供的一套公共服务。这些服务并不是portlet规范所要求的,但portal的商业实现版本提供了丰富的公共服务以有别于它们的竞争者。在大部分实现中都有望找到的几个公共服务有:
       单次登录:只需登录portal服务器一次就可以访问所有其它的应用,这意味着你无需再分别登录每一个应用。例如一旦我登录了我的intranet网站,我就能访问mail应用、IM消息应用和其它的intranet应用,不必再分别登录这些应用。
      Portal服务器会为你分配一个通行证库。你只需要在mail应用里设定一次用户名和密码,这些信息将以加密的方式存储在通行证库中。在你已登录到intranet网站并要访问mail应用的时候,portal服务器会从通行证库中读取你的通行证替你登录到mail服务器上。你对其它应用的访问也将照此处理。
      个性化:个性化服务的基本实现使用户能从两方面个性化她的页面:第一,用户可以根据她的自身喜好决定标题条的颜色和控制图标。第二,用户可以决定在她的页面上有哪些portlets。例如,如果我是个体育迷,我可能会用一个能提供我钟爱球队最新信息的portlet来取代股票和新闻portlets。
       一些在个性化服务方面领先的商业实现版本允许你建立为用户显示什么样的应用所依据的标准(如收入和兴趣)。在这种情况下,可以设定一些像“对任何收入为X的用户显示馈赠商品的portlet”和“对任何收入为X的用户显示打折商品的portlet”这样的商业规则。
    Portlet与Servlet比较:  
    与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类型的内容。

    由于Portlet与Servlet存在若干不同之处,所以在编写基于Portlet应用时要注意以下几个问题:

    Servlet是与表现层无关的,所以一个完整的Web应用可以只有一个Servlet作为Controller。但是Portlet是与表现层相关的,表现层的多个Portlet将对应多个Concrete Portlet。

    对于Web应用,我们可以将操作请求的处理流程分为两步,处理请求和展示结果。在传统Servlet/JSP应用中,请求和展示总是一起被执行的。但是在Portlet应用中,情况发生了改变:当doView或doEdit被调用的时候,仅展示部分被调用。这造成了在Portlet应用中处理与展示两个部分的执行频率并不相同,也就造成了Portlet应用的两阶段处理模式。

    在Portlet应用中URL是动态生成的(Portlet提供一套API来完成)。

    Portlet不支持forward和redirect。
    http://www.blogjava.net/ericwang/archive/2005/12/05/22626.html
    http://www.iteye.com/topic/59879

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?