首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

IBM webSphere Portal之portlet与servlet轨范的关系

2012-08-25 
IBM webSphere Portal之portlet与servlet规范的关系Servlet规范中是这样定义的:A servlet is a Java techn

IBM webSphere Portal之portlet与servlet规范的关系

Servlet规范中是这样定义的:

A servlet is a Java technology based web component, managed by a container, that generates dynamic content. Like other Java-based components, servlets are platform independent Java classes that are compiled to platform neutral bytecode that can be loaded dynamically into and run by a Java enabled web server. Containers, sometimes called servlet engines, are web server extensions that provide servlet functionality. Servlets interact with web clients via a request/response paradigm implemented by the servlet container.

?

Servetl是居于java技术的web组件,被servlet容器管理,生成动态内容。Servlet通过servlet容器与web客户端展开request、response交互。

其实很难说出Portlet与servelt之间的关系,从某个层面说portlet与servlet之间没有任何关系,但是从另一个层面来说又有个千丝万缕的关系,就像马和牛一样,所以这里只是做一些技术上的比较

Portlets与 servlets的相同点:

? 都是基于java技术的web 组件

? 都被专门的容器管理

? 都生成动态内容

? 生命周期都被容器管理

? 都是与web客户端通过request/response的方式交互

Portlets与 servlets的不同点:

? portlet只生成内容片断,portal来负责把这些片断聚集在一个页面中。

? portlet不能直接映射成一个url

? Web 客户端同portlet交互需要通过portal system

? Portlets 有多种request, action requests 和 render requests

? Portlets 定义了 portlet modes and window states

? Portlets可以离开多次在portal 页面

Portlet提供的附加功能但是servlet没有提供

? Portlets 可以持久化存储和访问数据

? Portlets可以访问用户的信息

? Portlets 具有url重写功能,可以让portal来生成访问portlet的链接和action。

? Portlets 可以在session的两个范围中存储数据,application-wide scope 和 the portlet private scope.

? Portlet可以互相接受、发送事件

Portlets 不具备的servlet提供的功能

? 在response中设置字符编码

? 直接通过url访问

Jsr286中新提供的serveResource具有完全的response控制。

就是由于上述的不同,才定义了这个新的web组件规范。Portlet重用了很多servlet中基础的、重要的概念,比如部署方式、类加载、生命周期管理、session管理、request分发。在同一个portlet 应用中的portlet、servlet、jsp共享类加载、应用上下文、session。

Portlet与servlet/jsp中的桥梁

Portlet可以利用servlet、jsp生成内容,一个portlet可以使用request分发调用servlet、jsp,就像一个servlet可以调用servlet、jsp。当一个servlet被portlet调用,servlet的request基于portlet的request,servlet的response基于portlet的response。比如:

? 在portlet中request设置的属性,servlet可以获得。

? Portlet、servlet、jsp共享一个输出流。

? 使在portlet中session设置的属性,servlet可以获得。

用servlet生命周期事件

Portlet中的PortletContext 、PortletSession与servlet中的SevletContext、HttpSession是有关联关系的,所有这对servlet生命周期的listener同样对portlet有效

Servlet容器与portlet容器之间的关系

Portlet的容器是servlet容器的扩展,根据中间件厂商的实现方式portlet容器可以单独实现也可以基于servlet扩展。

热点排行