要想飞翔,就不要贪心水里的鱼!

...翅膀湿了,就难飞翔!

servelet portlet比较(由于公司只能上技术网站,所以将这篇文章转载到csdn,方便在公司看)

portlet上下文

PortletContext实现,必须与ServletContext一致。主要方法:getPortalInfogetPropertygetPropertyNamesgetSupportedPortletModesgetSupportedWindowStates

PortletRequest

PortletRequest有两个子类: ActionRequest,RenderRequest

主要方法:

getParameter返回指定名称参数的第一个值,getParameterNames返回指定名称参数数组名称,getParameterValues 返回指定名称参数的值数组,getParameterMap

portlet容器不会将request的参数传播到外面,除非portletprocessAction中,调用了ActionRequest.setRenderParameter。不同portlet之间的request是不可见的。

Attributes可以与JSPServlet共享,它用来在普通API无法应用的场合。

Propertiesportlet容器指定,用来获取http的某些特性, 包括:content-length, content-type, accept-language等等。前缀为“javax.portlet.”的属性及参数是保留名称。

PortletRequest的生命周期,仅在processAction方法或render调用期间。

PortletResponse

PortletResponse有两个子类: ActionResponse,RenderResponse
PortletResponse的主要方法:setProperty,addProperty,encodeURL,sendRedirect
ActionResponse接口,允许重定向、设置参数、改变窗口状态及模式。
 setRenderParameter
RenderResponse接口,允许设置标题、内容。
setContentType
getPortletOutputStream
getWriter
生命周期:在processAction方法或render调用期间。

Portlet参数

Portlet通过参数来获取各种属性,接口是:PortletPreferences
Portlet只能在processAction调用的时候修改参数。
本地化参数,根据ResourceBundle类进行实现。
命名规则:’javax.portlet.preference.description.
验证:
实现:PreferencesValidator,并且必须以线程安全的模式实现,它在JVM中必须是单子的。
当有验证器与参数关联时,PortletPreferences.store()必须调用验证器的validate()方法。
参数的修改必须是原子性。

会话PortletSession

变量范围定义

一是应用程序级别APPLICATION_SCOPE二是Portlet级别PORTLET_SCOPE
APPLICATION_SCOPE必须采用前缀表示法来进行属性的存取。
当使用PortletSessionUtil类进行属性的访问时,对PORTLET_SCOPE的变量不用采取前缀,建议用取这种方法。

PortletSessionHttpSession的关系

PortletSessionHttpSession中的属性必须是互相可见的。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,PortletConfig
actionURL用来创建URL,定义了以下几个变量:String windowState,String portletMode,String var,String secure
namespace定义了当前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 请求
 

阅读更多
相关热词: servelet
想对作者说点什么? 我来说一句

Makefile百度百科

2010年05月26日 62KB 下载

Javascript Garden 网页的静态文件

2013年06月08日 87KB 下载

VBA抓取页面数据

2012年08月28日 228KB 下载

搜狗输入法6

2011年09月19日 19.55MB 下载

信息安全论文六(指纹识别算法)

2011年02月22日 18.37MB 下载

信息安全论文四(逆向分析)

2011年02月21日 17.95MB 下载

没有更多推荐了,返回首页

关闭
关闭