精华内容
下载资源
问答
  • JSR168规范与API手册

    2009-11-20 14:06:05
    JSR168规范与API手册 官方手册、标准 Portlet1.0开发必备
  • PORTAL开发相关标准:JSR168Introduction_to_JSR_168
  • JSR168 规范 部分解读

    2011-08-16 10:31:31
    但是用户信息应该包含什么内容不在 jsr168 规范的范围,事实上目前还没有关于访问用户信息的 java 标准, jsr168 提到在以后形成访问用户信息的 java 标准时,当前的机制就会被取代。 4、sessions k5u{g|)q w portal...
    关于portlet的一些概念性的文字网络上很多,谷歌或是百度一下可以很容易搜索到,下面我把自己觉得容易混淆和模糊的几个知识点做下简单介绍:
    
    1、portlet request & url

    在一个 portal 页面中,通常都包含了多个 portlet ,在一个时刻用户只能与一个 portlet 交互,当用户向一个 portlet 发出请求(例如点击了“ submit ”按钮),整个 portlet 页面将会重新构成。在这个过程中,是否有与用户交互的 portlet 处理方式显然是不同的,而且用户没有与之交互的 portlet 显然不应该接收到用户的请求参数。
      因此 jsr168 规范中将对 portlet 的请求分为 action 和 render 两种。 portlet 在收到 action 请求,获取用户所提交的信息,进行相应的处理;受到 render 请求后,则生成页面代码。当用户向一个 portlet 发出请求,该请求被 portlet 容器接受, portlet 容器再调用相应 portlet 的 processaction() 方法;等到 processaction() 方法执行完毕后, portlet 容器再调用所有 portlet 的 render() 方法,并将这些方法所返回的内容组合形成一个页面返回给客户端。在上述过程中,所有 portlet 的 render() 方法的调用次序在规范中没有规定,既可能是有顺序的串行调用,也可能是多线程的同步调用,依赖于厂商的具体实现。

    为了接受用户请求,一个 portlet 需要有一个指向其自身的 url ,例如用在 http form 的 action 字段。但是与 servlet 不同的是, portlet 不是一个完整的页面而只是页面的一部分,一个 portlet 可以出现在多个页面中,所以 portlet 无法绑定具体的 url 。在 jsr168 规范中定义了 portleturl 接口,通过该接口可以得到指向 portlet 自身的 url ,对应两种用户请求有两种产生 url 的方法: q?4k2@*v_rk*l
    一、for render():
    portleturl url = response.createrenderurl(); www.portalfan.com&s a(`l v(s
    url.setparameter(“customer”,”foo.com”);
    url.setparameter(“show”,”summary”); !g{f#vk^
    writer.print(“<a href=\””+url.tostring()+”\”>summary</a>”);

    4x_kus/^![
    二、for processaction():
    `kti3o
    portleturl url = response.createactionurl();
    url.setparameter(“paymentmethod”,”creditcardinprofile”);
    url.setwindowstate(windowstate.maximized); www.portalfan.com1x"p vfh
    writer.print(“<form method=\”post\” action=\””+ url.tostring()+”\”>”);
    (r/ai ii(v/i
      上面的代码我们可以看到,除了得到 url 外,还可以在其中加入参数。另外由于 portal 服务器厂商通常都会利用 url 增加一些产品相关的参数,因此强烈建议在 portlet 中提交用户请求采用 post 方式。

    2、 portlet modes & window states
    在 portal 应用中,用户通常需要设置、调整 portlet 的显示方式,对此 jsr168 同样做出了规定。分别有 portlet modes 和 window states 。
    portlet modes 说明 portlet 目前所执行的功能模式,规范要求 portal 服务器必须支持以下三种模式: www.portalfan.com\ k6k7cwk
    )e-[_lj rq&si
    q
    view ——内容显示,通常为缺省模式
    edit ——编辑相关的设置
    help ——显示帮助信息
    除此之外可以portal服务器可以实现自定义的模式。portal爱好者0xlqxp5iv j

    每个 portlet 在 portal 页面中就是一个“窗口”,类似于 ms windows 、 xwindo 等窗口系统 portlet 也有自己的窗口状态( window states ),规范要求 portal 服务器必须支持以下三种窗口状态 :
    normal ——普通 portlet 窗口,在这个状态下通常是与其它 portlet 共享 portal 页面; portal爱好者t8u/o/f;f
    maximized ——最大化 portlet 窗口,独占 portal 页面;
    j&?'x$az9u_ej
    minmized ——最小化 portlet 窗口 #la|m@!yp?2n g
    除此之外可以portal服务器可以实现自定义的窗口状态         
    在规范中对这些特性进行定义,使得 portlet 开发者无需关心这方面实现细节,另外在 processaction() 和 render() 方法中开发者都可以通过 getportletmode() 和 getwindowstate() 等方法获得当前 portlet 的情况从而决定相关操作。

    3、preferences & user information say?d
      portal 应用一个重要功能就是“个性化”,一方面 portal 服务器需要根据用户的不同显示不同的 portlet ,另一方面同一个 portlet 也会根据用户的偏好显示不同的内容。这就要求 portlet 需要保存一些用户的相关信息,例如一个股票实时信息的 portlet 会根据用户所关注的股票显示相应的信息。
      每个 portlet 都可能有自己相应的个性化信息, jsr168 规范提供了 portletpreferences 接口来操纵这些信息。   
    portletpreferences 接口提供读取、设置属性的方法,如下:
    portletpreferences prefs = req.getpreferences();
    string[] symbols = prefs.getvalues(”preferredstocksymbols”, l&fnew string[]{”acme”,”foo”}); www.portalfan.com*j4wf2wi qg
    #f_,[$j({6m

    d,ng1r(`*nup
      在 jsr168 规范中 portletpreferences 是用户相关的,也就是通过 getpreferences() 获得的对象是与当前登录用户绑定的, portletpreferences 不会在用户之间共享属性。 lg4a {^a2zb q ]
    portletpreferences 提供了一个基本的读取、设置个性化属性的途径,使得 portlet 无需依赖具体的数据储存环境(例如数据库联接、表结构等等)就可以实现个性化并能够在不同的 portal 服务器之间移植。但是不应该使用 portletpreferences 来替代一般的数据库功能。
    在实现个性化功能中经常需要获取各种用户信息,例如用户姓名、地址等等。因此 jsr168 也提供了一个获取用户信息的途径,如下:sk2b7kk
    ~}
    n%r3i
    map userinfo = (map) request.getattribute(portletrequest.user_info);
    string givenname = (userinfo!=null) ? (string) userinfo.get(“user.name.given”) : “”;
    string lastname = (userinfo!=null) ? (string) userinfo.get(“user.name.family”) : “”;
      所获得的 map 对象是一个只读对象,不能更改。但是用户信息应该包含什么内容不在 jsr168 规范的范围,事实上目前还没有关于访问用户信息的 java 标准, jsr168 提到在以后形成访问用户信息的 java 标准时,当前的机制就会被取代。

    4、sessions k5u{g|)q
    w
    portal爱好者ss"uu+~`
      作为一个 web 应用组件, portlet 同样有 session 这个机制用于跟踪用户操作,而与一般的 web 应用所不同的是 portlet 的 session 属性有两种作用域:fi
    portlet_scope:属性只能被设置它的portlet访问
    application_scope:属性可以被同一个portal应用中的所有portlet访问 4vgu\;f

    portletsession session = request.getsession(true);
    url url = new url(“http://www.foo.com”);
    session.setattribute(“home.url”,url,portletsession.application_scope);
    session.setattribute(“bkg.color”,”red”,portletsession.portlet_scope);

    5、request dispatch & portlet tag
      在实现 portlet 应用时,开发者往往会利用 servlet 、 jsp 等资源,起码会有两个目的会这样做: 为了利用现有的资源,简单地将已经写好的 servlet 、 jsp 应用转换成 portlet ; 方便 portlet 的表现层开发。 portlet 规范类似于 servlet 规范,在表现层开发上远远不如 jsp ,因此需要利用 jsp 来开发界面。jsr168 提供了类似 servlet requestdispatcher 的接口来实现利用 servlet 、 jsp 等资源的功能。
    例子如下: portal爱好者.c
    oj#m|7sj,m2vh
    string path = "/raisons.jsp?orderno=5"; portal爱好者'j0q|lh:vu&[']
    portletrequestdispatcher rd = context.getrequestdispatcher(path); rd.include(renderrequest, renderresponse);
    当一个 jsp 页面需要作为 portlet 应用的一部分, jsp 开发者需要获得相关的 portlet 信息,为此 jsr168 提供了相应的 jsp tag 来实现相关的功能。通过相应的 portlet tag , jsp 开发者可以获得相应的 portlet request/response 对象,产生 actionurl 或者 renderurl 等等。

    5、缓存qb&gwn(n_
    www.portalfan.com/yza"x1g-pb1c
      在前面中我们知道,用户每次向portal 应用发送一个请求,该页面中所有的 portlet 都会被 portlet 容器调用 render() 方法来产生相应内容。但是只有一个 portlet 才会处理用户请求,其它不处理用户请求的 portlet 可能每次的显示内容都是不变的。
    因此 jsr168 定义了缓存机制来提供 portal 应用的效率。在 portlet.xml 中可以定义缓存的失效时间,如下:
    portal爱好者)y2c$\7m.e
    <portlet> r`xh m5co i
    ...
    <expiration-cache>300</expiration-cache>
    ...
    </portlet>
    这样 portlet 容器在调用 portlet 的 render() 方法之前就会检查有缓存是否已经有效,如果有效的话就直接使用缓存内容。 portlet 缓存是跟客户端相关的,不同的客户端访问同一个 portlet 分别有自己的缓存而不会混淆。jsr168 对缓存机制的实现不是强制性的, portal 服务器厂商可以自行决定是否实现这个特性。

    6、css style definition
      在一个 portlet 应用中,所有 portlet 应该具有显示上的一致性,例如使用相同的字体等等。为了到达这一点, jsr168 定义了一套 css 元素名称, portlet 开发者都应该采用这套 css 来产生显示内容。这套 css 定义主要包含了 fonts 、 message (例如告警、通知等等)、 sections 、 forms 。

    7、portlet vs servlet
      portlet 和 servlet 是十分类似的,只是由于 servlet 无法达到 portal 应用的要求 jcp 才定义了新的 portlet 规范,为了尽可能与现有的 servlet 结合达到重复使用的目的, portlet 的规范利用了 servlet 的规范,许多观念都很相似的。在讲述了 portlet 的特性后,我们再来看看他们直接的异同。相似之处:]3b ac|z2g
    portlet 也是 java 技术的 web 组件 z&mbh[] t6sey
    portlet 也是有特定的 container 在管理
    portlet 可以动态产生各种内容 &x3z$r0]w9j)_
    portlet 的生命周期由 container 所管理 bf;ykx
    portlet 和客户端的互动是通过 request/response 的机制wz

    不同之处: portal爱好者 d(e9g$ma2w{l
    portlet 只产生 markup 信息片段,不是完整的网页文件
    portlet 不会和 url 有直接的关系
    客户端必须通过 portal 系统才能和 portlet 互动
    portlet 有一些定义好的 request 处理, action request 以及 render request
    portlet 默认定义 portlet modes 及窗口状态
    portlet 可以在同一个 portal 网页之中存在多个

    portlet有的功能而servlet没有:
    portlet 能够存取及储存永久配置文件及定制资料
    portlet 可以存取使用者数据
    portlet 具有 url 的重写功能够在它的内容中动态建立连结
    portlet session 的属性拥有两个不同的范围: application-scope 及 portlet-scope

    portlet不具备而servlet提供的功能
    servlet 具有设置输出的文字编码 ( character set encoding) 方式
    servlet 可以设置 http 输出的 header
    servlet 才能够接收客户对 portal 发出的 url 请求
    展开全文
  • 为 Portlet 接口部分,在新编写 Portlet 时均需要直接实现此接口或继承已实现此接口的 Portlet 类 ( 如 GenericPortlet) ,此接口控制了 Portlet 的整个 Lifecycle ,根据 JSR168 规范,将 Portlet 的 Lifecycle ...
    http://www.blogjava.net/rain1102/articles/96124.html
    

    1. GenericPortlet 。为具体类,继承自 Portlet ,提供了基本的一些功能。

    2. Portlet 。为 Portlet 接口部分,在新编写 Portlet 时均需要直接实现此接口或继承已实现此接口的 Portlet 类 ( 如 GenericPortlet) ,此接口控制了 Portlet 的整个 Lifecycle ,根据 JSR168 规范,将 Portlet 的 Lifecycle 划分为了三个阶段:
    (1) init 。初始化此 Portlet ,在一个 Lifecycle 中 Portlet 只可初始化一次。通过传入的 PortletConfig 可获得 PortletContext 。
    (2) handlerRequest 。在此阶段规范将其分为了 processAction 以及 render 两种概念, processAction 表示此 Portlet 与用户的交互过程的处理; render 则主要控制了 Portlet 的内容的显示,用于组装 Portlet 的 fragment (不好翻译, ^_^ )。
    (3)destroy 。结束此 Portlet 的 Lifecycle ,可在此部分进行 Portlet 的一些资源的回收等工作。
    Portlet 容器通过 Portlet 的一个标识符调用 Portlet 的接口进行与 Portlet 的交互。
    Portlet 接口依赖 PortletConfig 、 ActionRequest 、 ActionResponse 、 RenderRequest 、 RenderResponse ,这和 Servlet 非常的相似。

    3. PortletRequest 。此接口类似 HttpServletRequest ,通过此接口获取所有与当前 Portlet 相关的参数、 Portlet 的 Mode 、 Portlet 的 WindowState 、 Portal 的上下文环境、 Portlet 的 Preference 、 PortletSession 。

    4. ActionRequest 。此接口继承自 PortletRequest ,通过此接口在 Portlet 的 processAction 中通过 ActionRequest 可获得相关的 Portlet 的交互式请求的参数。

    5. RenderRequest 。此接口继承自 PortletRequest ,目前规范中此接口中未定义任何方法。

    6. PortletResponse 。此接口类似与 HttpServletResponse ,提供页面显示 Portlet 时的一些内容的写入。

    7. ActionResponse 。此接口继承自 PortletResponse ,提供了交互相关的设置 PortletMode 以及其 WindowState 的方法。

    8. RenderResponse 。此接口继承自 PortletResponse ,提供了完全类似于 HttpServletResponse 的方法,由于 Portlet 只提供片断式的内容,和 Servlet 提供一个完整的页面内容不同,在 response 时无法设置页面的 contentType 等相关的页面头级的东西。

    9. PortletConfig 。此接口非常类似于 ServletConfig ,用于获取 Portlet 配置文件 (portlet.xml) 中的初始参数,类似于 ServletConfig 获取 web.xml 中的初始参数,通过 PortletConfig 可获取 Portlet 的相关上下文对象 PortletContext 。

    10. WindowState 。此具体类用于定义 Portlet 所支持的 WindowState 。

    11. PortletMode 。此具体类用于定义 Portlet 所支持的 Mode (默认提供的为 View 、 Edit 、 Help )。 Portlet 容器厂商可根据需要提供特殊的 Mode 。

    12. PortalContext 。此接口类似于 ServletContext ,用于获取 Portal 相关的上下文信息,如 Portal 的提供商信息等等。

    13. PortletPreference 。此接口主要用于考虑 Portlet 的个性化定制的数据的保存,此接口并不代表要替代用于保存个性化定制信息的数据库,可用于保存一些数据量不大情况下的特殊偏好。

    14. PreferenceValidator 。此接口用于检测 portlet.xml 中的 Preference 参数的合法性。

    15. PortletSession 。此接口非常类似于 HttpSession ,用于串接 Portlet 中的 Session 数据。

    16. PortletContext 。此接口用于获取与 Portlet 容器相关的上下文信息。

    17. PortletURL 。此接口有点类似 Jetspeed 中所使用的 $jslink.setAction 以及 $jslink.setPage 之类的方法,如果熟悉 Jetspeed 的架构的应该比较 熟悉这 个概念,这个主要为使得容器得以识别 View 层和 Model 层的交互的衔 接。
    展开全文
  • 1、首先先了解一下PortletSession的属性   static final int APPLICATION_SCOPE : 这个常量定义会话属性的应用范围广泛。 APPLICATION_SCOPE会话属性使Portlet的一个portlet应用程序内的数据共享。...

    1、首先先了解一下PortletSession的属性

           

               static final int APPLICATION_SCOPE  :
                    这个常量定义会话属性的应用范围广泛。 APPLICATION_SCOPE会话属性使Portlet的一个portlet应用程序内的数据共享。效果和httpsession一样
                    
             static final int PORTLET_SCOPE :
                    这个常量定义会话属性是私有的portlet和其包含的资源的范围,智能在设置portlet中使用。
    



    2、隐藏用处:

         环境: 是把stringbeans代码和自己开发的web项目代码合并到一起的情况下:

                      可以在portlet中用APPLICATION_SCOPE这个属相获得  web项目中的httpsession的值。

                  如:

                       User user  =  (User) request.getPortletSession().getAttribute("user", PortletSession.APPLICATION_SCOPE);
                       System.out.println(user);

                       这里的user就是自己开发项目中的user用户信息。

    展开全文
  • JSR168

    2008-05-28 21:41:40
    JSR168规范介绍
  • JSR 168 Portlet规范标准

    千次阅读 2005-01-28 20:46:00
    JSR 168 Portlet规范标准Java Standardization Request 168JSR 168)定义了一个Portlet规范,包括Portlet容器和Portlet之间的合约。JSR 168是由Java Community Process(JCP)定义的。JSR 168是由IBM和Sun共同领导...

    JSR 168 Portlet规范标准

    Java Standardization Request 168JSR 168)定义了一个Portlet规范,包括Portlet容器和Portlet之间的合约。JSR 168是由Java Community ProcessJCP)定义的。JSR 168是由IBMSun共同领导的,并且有一个很大的Expect Group以帮助创建目前可用的最终版本。这个专家组由Apache Software FoundationArt Technology Group Inc.ATG)、BEABoeingBorlandCitrix SystemsFujitsuHitachiIBMNovellOracleSAPSAS InstituteSunSybaseTibcoVignette组成。

    关于JSR 的更多信息可以在 http://jcp.org/en/jsr/detail?id=168上找到。

     PortalPortlet容器

    portal 是一个Web应用程序,它通常提供不同来源的个性化、单点登录的内容集合,并且托管不同后端系统的表示层。Portal的主要任务是将不同的应用程序集合到一个页面,这个页面的外观是Portal用户共有的。Portal也可以有复杂的个性化特征,这些特征能够给用户提供自定义内容。Portal页可以有不同的Portlet集,以便为不同的用户创建内容。

    客户端请求由Portal Web应用程序进行处理,它为当前用户检索当前页上的Portlet。然后,Portal Web应用程序为每个Portlet调用Portlet容器来通过Container Invoker API检索它的内容。Portlet容器通过Portlet API调用PortletContainer Provider Service Provider InterfaceSPI)允许 portlet容器通过Portal检索信息。


                                     
    3. 基本的 Portal 体系结构

     Portal页和Portlet

    下展示了基本的Portal页组件。Portal页表示一个完整的标记文档并且聚集若干Portlet 窗口;也就是说,它将不同的应用程序用户界面组合到一个统一的表示中去。Portal页使用户能够通过登录对话框向Portal验证自己的身份以便访问个性化的Portal 视图。大部分Portal页包括一些导航机制以允许用户导航到其他的Portal


             
    Portlet窗口包括:

    l        标题栏,带有Portlet的标题

    l        修饰,包括用于更改Portlet的窗口状态的按钮(比如最大化或最小化Portlet)和用于更改Portlet的模式的按钮(比如显示帮助或编辑预定义的Portlet设置)

    l        Portlet产生的内容(也称为一个标记段)。

     

    在不同的浏览器上展示了一个Portlet窗口。如您所见,该portlet产生的标记段并不局限于HTML,而可以是任何标记

    展开全文
  • 比较 JSR 168 Java Portlet 规范与 IBM Portlet API.pdf
  • 目前最全的资源 jsr168 jsr286 中英文都有 还有API
  • JSR 168 and Portlet

    2019-08-30 16:39:55
    JSR168是Java 规范要求(Java Specification Request ,JSR)的缩写,它为创建Portlet建立标准的API。很多重量级的Portal开发商和开源项目组参与了Java标准化组织(Java Community Process)创建JSR168标准的过程,...
  • JSR 168

    2009-04-26 12:45:00
    很多重量级的Portal 开发商和开源项目组参与了创建JSR168 标准的过程,并且很多Portal 产品开始支持JSR 168。JSR168 在2003 年10 月正式发布。最主要的Portal 开发商已经宣布计划支持JSR 168 标准。 JSR 168 定义了...
  • Portal与JSR168

    2009-01-03 17:41:32
    这里所说的Portal是指JCP-JSR168规范所描述的:Portal是一个基于Web的应用,通常它提供个性化、单点登录、内容集成和显示等功能。Portal技术包括三个方面: 1) Portal服务器; 2) Portlet容器; 3) Portlet...
  • JSR168中文参考手册

    2021-01-21 05:05:59
    JSR168 PORLET 标准手册汉化整理 本规范汉化资源搜集整理于网上并由我作了些修改和添加主要为适应大陆的语辞用语及其他未译之处 由于本人于水平有限如有错误请各位高手指正若有高见希望不吝言辞同
  • 文详细说明了 Java TMJava TMStandardization Request for the Java Portlet 规范(以下称为 JSR 168)和 IBM WebSphere Portal Version 5.0 支持的 IBM Portlet API之间的相似点和不同点。文中解释了 JSR 168 的...
  • 导读: 相关技术介绍和规范--JSR168 (先看一下在JSR168中提到的Portal page,可以了解一個Portal Page上大概有哪些element) JSR-168 (Enterprise Portlet Specification 1.0 Final Draft 发表于2003-09-03,是...
  • JSR168汉化手册

    2009-05-20 14:52:35
    对于门户组件的开发,业界中目前都是基于JSR168规范开发,因为英文文档理解起来比较拗口,有相关好人进行了翻译,非常感谢这些人。
  • JCP-JSR168: Portal

    2007-01-31 15:49:00
    这里所说的Portal是指JCP-JSR168规范所描述的:Portal是一个基于Web的应用,通常它提供个性化、单点登录、内容集成和显示等功能。Portal技术包括三个方面: 1) Portal服务器(Portal Server); 2) Portlet...
  • JSR168 初探

    2010-05-13 11:39:00
    JSR168 PORLET标准手册汉化整理 http://blog.csdn.net/farstarzw/archive/2005/04/25/362054.aspx轻松进行Java Portlets —— 开发基于JSR168的开发和部署...
  • 什么是JSR168

    2008-06-17 10:21:00
    JSR168是Java 规范要求(Java Specification Request ,JSR)的缩写,它为创建Portlet建立标准的API。很多重量级的Portal开发商和开源项目组参与了Java标准化组织(Java Community Process)创建JSR168标准的过程,...
  • JSR268门户标准

    2018-07-17 18:20:16
    java门户标准,jsr168规范,jsr268规范,java门户标准,jsr168规范,jsr268规范
  • SUN JSR 168 portlet中文规范整理(一)

    千次阅读 2005-04-25 13:48:00
    JSR168 PORLET标准手册汉化整理 本规范汉化资源搜集整理于网上并由我作了些修改和添加,主要为适应大陆的语辞、用语及其他未译之处。 由于本人于水平有限,如有错误,请各位高手指正;若有高见,希望不吝言辞,...
  • PLT. 5    Portlet 接口   Portlet接口是Portlet API的主要抽象。所有Portlet都是或者直接实现此接口,或者更多地是继承实现了此接口的类。...本Porlet API包括一个实现了Portlet接口的GenericPortlet类,此类...
  • 编写jsr168portlet指南

    2007-12-26 10:08:00
    JSR-168是适合于portlet开发人员的Java API集合。设计符合规范的JSR-168 portlet的原因有很多。可移植性就一个显而易见的好处。根据规范编写的代码更容易在门户...当portlet符合JSR-168规范时,通过Web Services for Re

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,173
精华内容 869
关键字:

jsr168规范