portlet上下文
由PortletContext实现,必须与ServletContext一致。主要方法:getPortalInfo、getProperty、getPropertyNames、getSupportedPortletModes、getSupportedWindowStates
PortletRequest
PortletRequest有两个子类: ActionRequest,RenderRequest
主要方法:
getParameter返回指定名称参数的第一个值,getParameterNames返回指定名称参数数组名称,getParameterValues 返回指定名称参数的值数组,getParameterMap
portlet容器不会将request的参数传播到外面,除非portlet在processAction中,调用了ActionRequest.setRenderParameter。不同portlet之间的request是不可见的。
Attributes可以与JSP及Servlet共享,它用来在普通API无法应用的场合。
Properties由portlet容器指定,用来获取http的某些特性, 包括:content-length, content-type, accept-language等等。前缀为“javax.portlet.”的属性及参数是保留名称。
PortletRequest的生命周期,仅在processAction方法或render调用期间。
PortletResponse
PortletResponse有两个子类: ActionResponse,RenderResponsePortletResponse的主要方法:setProperty,addProperty,encodeURL,sendRedirectActionResponse接口,允许重定向、设置参数、改变窗口状态及模式。setRenderParameterRenderResponse接口,允许设置标题、内容。setContentTypegetPortletOutputStreamgetWriter生命周期:在processAction方法或render调用期间。
Portlet参数
Portlet通过参数来获取各种属性,接口是:PortletPreferencesPortlet只能在processAction调用的时候修改参数。本地化参数,根据ResourceBundle类进行实现。命名规则:’javax.portlet.preference.description.验证:实现:PreferencesValidator,并且必须以线程安全的模式实现,它在JVM中必须是单子的。当有验证器与参数关联时,PortletPreferences.store()必须调用验证器的validate()方法。参数的修改必须是原子性。
会话PortletSession
变量范围定义
一是应用程序级别APPLICATION_SCOPE,二是Portlet级别PORTLET_SCOPE。APPLICATION_SCOPE必须采用前缀表示法来进行属性的存取。当使用PortletSessionUtil类进行属性的访问时,对PORTLET_SCOPE的变量不用采取前缀,建议用取这种方法。
PortletSession与HttpSession的关系
在PortletSession与HttpSession中的属性必须是互相可见的。PORTLET_SCOPE属性必须加上前缀,两种session必须一致。APPLICATION_SCOPE的属性名称必须是一致的。“javax.portlet.”前缀的属性名称是保留的,开发者不能使用。
缓存Cache
超时缓存,不要求实现。使用RenderResponse设置属性可以改变缓存EXPIRATION_CACHE,如果设置为0则不使用缓存,设置为-1则缓存永不过时。在描述文件中没有定义,但程序中设置了的话,会被忽略。
Portlet应用
Portlet应用是一个web应用,并且可以用于不同的portlet容器中。Portlet应用与web应用的关系:由servlet容器管理所有的组件、资料(除portlet外)。Portlet应用与PortletContext的关系:由容器实现一对一。目录结果:/WEB-INF/portlet.xml,/WEB-INF/classes,/WEB-INF/lib,ClassLoader:与servlet同样。
标记库
defineObjects定义了以下几个变量:RenderRequest,RenderResponse,PortletConfigactionURL用来创建URL,定义了以下几个变量:String windowState,String portletMode,String var,String securenamespace定义了当前portlet的一个唯一值,用于输出时确保名称的唯一性,例如javascript函数名。param用来加入到URL中,必须在actionURL的内部定义。例如:”myParam” value=”someValue”/>
定制的Portlet模式
about, config, edit_defaults, priview, print
不允许的标记
基于HTML:base, body, iframe, frame, frameset, head, html, title。基于XHTML:base, body, iframe, head, html, title。不太兼容的标记:link,meta,style。
Portlet标准虽不复杂,但其在整个portal应用中不过是冰山一角。实际上,实现一个portal是一个非常庞大的工程,它几乎等同于一个IDE的开发,Bea WebLogic在这方面可以说是业界的先锋,其IDE环境workshop,已完全集成了Portal的开发,达到了可视化目的,这也是下一节所要详述的。
二 portlet与servlet的关系
Portlet 和 Servlet 算是兄弟有那么一点点相似却又有那么一点点不同,因为 Servlet 和 Portlet 不尽然相同,所以研究小組決定将 portlets 定义成为一个新的组件,因此定义了 portlets 一个新的并且明确的界面与行为。为了尽可能与现有的 servlet 结合达到重复使用的目的,portlet 的规范利用了 servlet 的规范,许多观念都很相似的,结合 portlets、servlets 及 jsp 在同一个网站系统中,我们称为 portlet application 。在同一个 portlet application 中,他们将分享同一个 classloader,context 及 session。
1) Portlet 和 Servlet 的相似之处
@ portlets 也是 Java 技术的 web 组件
@ portlets 也是有特定的 container 在管理
@ portlets 可以动态产生各种内容
@ portlets 的生命周期由 container 所管理
@ portlets 和客户端的互动是通过 request/response 的机制
2) Portlet 和 Servlet 也有一些不同
@ portlets 只产生 markup 信息片段,不是完整的网页文件。而 Portal 会将所有的 Portlet markup 信息片段放到一个完整的 Portal 网页。
@ portlets 不会和 URL 有直接的关系
@ 客户端必须通过 portal 系统才能和 portlets 互动
@ portlets 有一些定义好的 request 处理,action request 以及 render request。
@ portlets 默认定义 portlet modes 及窗口状态可以指出在网页中该 portlet 的哪个功能正在执行及现在的 状态。
@ portlets 可以在同一个 portal 网页之中存在多个。
3) Portlet 有一些附加的功能是 Servlet 所没有的
@ Portlets 能够存取及储存永久配置文件及定制资料。
@ portlets 可以存取使用者数据
@ portlets 具有 URL 的重写功能在文件中去动态建立连结,允许 portal server 不用去知道如何在网页的片 段之中建立连结及动作。
@ portlets 可以储存临时性的数据在 portlet session 之中,拥有两个不同的范围 :
application-wide scope 及 portlet private scope 。
4) Portlet 不具有一些功能,但是 Servlet 却有提供
@ servlet 具有设置输出的文字编码( character set encoding)方式
@ servlet 可以设置 HTTP 输出的 header
@ servlet 才能够接收客户对于 portal 发出的 URL 请求
累了,去
读意优休息一下下,QQ空间,美文,非主流,网络日记,搞笑短信,祝福短信,热门短信,有意思啊
分享到:
相关推荐
Portlet与Servlet的主要区别在于,Portlet处理的是局部视图,而Servlet通常处理整个页面的请求。因此,尽管它们都运行在Java环境中,但Portlet更专注于个性化和组件化的交互体验。 在实际应用中,Portlet、Servlet...
事件处理则允许portlet之间或者portlet与用户之间的交互,例如,一个portlet触发一个事件,其他portlet可以监听并响应这个事件。 Web和servlet技术在portlet开发中也起着关键作用。Servlet是Java Web应用的基础,...
开发Portlet需要了解其基础概念、生命周期、与servlet的关系以及开发环境的搭建等。 ### Portlet基础知识 Portlet是Portal页面的一个区域,它类似于Web应用中的servlet,但是它运行在Portal容器中。Portal是一个为...
请求分发是Portlet开发中的一个重要概念,它允许Portlet与Servlet和JSP页面进行有效的交互。 #### 十六、Portlet标签库 Portlet标签库提供了一系列专门用于简化Portlet开发的HTML标签。这些标签可以帮助开发者更...
在Java世界中,portlet技术主要基于JSR 286(Portlet 2.0 API)标准,它定义了portlet如何与门户服务器交互。本篇文章将深入探讨portlet的类结构以及portlet过滤器和拦截器的实现。 首先,我们来看看portlet的类...
- 开发portlet通常需要熟悉Java Servlet API,因为portlet的许多底层机制是基于Servlet技术构建的。 - 开发过程中,portlet可以有两种模式:渲染模式(Render Mode)和动作模式(Action Mode),分别用于处理显示...
Tomcat是一个流行的开源Servlet容器,支持Java EE Web应用程序的部署,包括portlet。 2. **构建portlet应用**:使用选定的portlet开发工具包创建portlet项目。这通常涉及配置portlet的Maven pom.xml文件,指定依赖...
与传统的Web应用相比,portlet强调了组件化和可重用性,允许开发者独立开发和部署,然后在门户中进行组合。 二、Portlet的工作原理 1. 请求处理:当用户与portlet交互时,例如点击portlet内的按钮,portlet会收到...
Portlet与传统的Web应用不同,它并不处理整个页面,而是与多个其他Portlets一起协作构建一个完整的Web页面。每个Portlet有自己的生命周期,包括初始化、渲染、事件处理和动作请求等阶段。在"HelloWorld"工程中,我们...
Portlet与servlet的关系**:Portlet可以被视为servlet的一个扩展,它们都遵循类似的生命周期模型,但Portlet还具有更多的功能和约束,以适应Portal环境的需求。例如,Portlet可以响应不同的请求类型,包括渲染请求...
- **View**:视图层,显示模型的数据,通常与DOM元素绑定,当模型数据改变时自动更新视图。 - **Controller**:控制器层,处理用户的输入,更新模型并通知视图刷新。 ### 3. 拖放功能 jQuery UI 提供了强大的拖放...
3. 处理动作请求:用户与portlet交互,如点击按钮,portlet会处理动作请求,可能更新内部状态或执行业务逻辑。 4. 处理资源请求:portlet可以异步处理资源请求,提供动态数据,提高性能。 5. 事件处理:portlet之间...
9. **Web.xml**:虽然Spring Portlet MVC主要在portlet.xml中配置,但在传统的Web应用中,`web.xml`可能仍然用于定义servlet容器的配置,例如filter和listener。 在实际开发中,这个示例项目可以帮助理解Spring ...
首先,要理解Stringbeans 3.5的架构,它基于Java Portlet API,该API定义了portlet如何与门户服务器交互。加载外部portlet意味着我们需要将非内置的portlet应用集成到Stringbeans门户中,这通常涉及以下步骤: 1. *...
在portlet的通信机制中,portlet与portal服务器之间通过portlet上下文(PortletContext)进行交互,获取portlet配置信息和共享资源。此外,portlet间可以通过公共渲染参数(Public Render Parameters)进行安全的...
Portlet与Servlet的主要区别在于请求处理的双阶段模式:行动阶段和呈现阶段。行动阶段用于处理数据修改等后端逻辑,而呈现阶段则专注于生成用户界面。这种分离机制确保了状态更新与用户反馈的清晰区分,增强了框架的...
Portlet API定义了portlet与portal服务器之间的交互方式,使得portlet可以响应用户的请求并呈现内容。 **Spring MVC Portlet的组件** 1. **Controller** - 控制器负责处理来自portlet的请求,通常通过实现`...
本篇文章将深入探讨Portlet如何与容器(如Liferay)进行交互,并通过"LifeCycleTest"这个代码示例来详细解析这一过程。 首先,Portlet的生命周期包括初始化、渲染、事件处理、动作处理和销毁五个主要阶段: 1. **...
Portlet是一种小型Web应用程序,它运行在门户服务器上,与门户页面上的其他portlet协同工作,提供特定的功能或内容。portlet类似于传统的Web应用,但它们通过portlet容器进行管理和交互,而不是直接与浏览器通信。 ...