2.3. 什么是Portlet 容器?
容器也为Portlet “喜好参数”提供持久存储。一个Portlet 容器由Portal 收到请求,把请求交给负责的Portlets 去执行。 Portlet 容器不负责聚合portlets 生成的内容。这个由Portal 来负责处理。 一个Portal 和一个Portlet 能够构造成一个应用套件的一个单独的构件,或者作为一个Portal 应用的两个分开的构件。 2.4. 一个示例 下边的典型事件序列,由用户连接到她的portal 页面开始: l 一个通过了认证的客户端(如一个网页浏览器)向portal 产生一个HTTP 请求 l Portal 收到这个请求 l Portal 确定这个请求包含的动作目标是给Portal 页面上哪一个关联的portlet 的 l 如果有一个动作目标是给某个portlet 的,portal 要求Portlet 同去调用这个Portlet 来处理这个动作 l Portal 通过Portlet 容器调用Portlet ,获得包含在结果Portal 页面中内容片。 l Portal 聚合页面中Portlets 的输出,并将页面发回给客户端。 2.5. Portlet规范和J2EE 的关系 Portlet apr 1.0版是基于J2EE 1.3版.Portlet s容器和PORTLETS符合J2EE规范描述的需求,能够运行在J2EE环境中. 在名字和概念上,Portlet 和Servlet (定义在Servlet 2.3 规范中)很类似。 3. Portlet规范与Servlet规范的关系 Servlet 2.3 规范对Servlets 的定义是这样的:
Portlets 和 Servlets 有下列相似之处: l Portlets 是基于Java 技术的Web 组件 l Portlets由专门的容器来管理 l Portlets 可以生成动态的内容 l 容器管理Portlets 的生命周期 l Portlets 与Web 客户端通过“请求/响应”的模式来交互 Portlets 和 Servlets 的不同之处有以下几方面: l Portlets 生成一些标记语言的标记片断,而不是整个文档。由Portal 聚合这些Portlet 标记片形成一个完整的Portal 页面。 l Portlets 不直接绑定到一个URL l Web 客户端是通过Portal 系统与Portlets 交互 l Portlets 更精确的就行请求的响应,处理和提交 l 在Portal 页面中,Portlets 有预定义好的Portlet 模式和窗口状态来指出当前Portlet 执行的是什么功能 l Portlets 能够在Portal 页面中存在多次 Portlets 能够具有Servlets 不能提供的一些额外功能: l Portlets 可以有访问持久存储的配置和客户定制数据的能力 l Portlets 可以访问用户描述信息 l Portlets 有URL 重写功能来在它的内容中创建超级链接,这样就可以允许Portal 服务器在页面片中不可知的创建链接和处理 l Portlets 能够在两个不同的范围内,在 Portlet session 中暂时存储一些数据:应用范围内和Portlet 私有范围 有一些Servlet 的功能,Portlet 并不具备 l 在响应中设置字符编码 l 在响应中设置HTTP 头信息 l 没有客户端可以请求的URL 因为这些不同,专家组决定需要一种新的Portlet 组件,因此,Portlet 并不是Servlet,将为Portlets定义清晰的接口和行为。 为了尽可能的重用现有的Servlet 基础结构,有可能的情况下,Portlet 规范使用了一些Servlet 规范提供的功能。比如包括了:部署、类装载、Web 应用、Web 应用生命期管理、Session 管理和请求分派。大量的概念和Portlet API 的内容都仿照了Servlet API。 Portlets、Servlets 和JSPs 捆绑在一起作为一个扩展Web 应用就叫做 Portlet 应用。Portlets、Servlets 和JSPs 在同一个Portlet 应用中共享类装载器、应用context 和session。
|
|