老文原创
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 的定义是这样的:
“Servlet 是一种基于Java 技术的,由容器管理的,能够生成动态内容的Web 组件。像其他一些Java 组件,Servlets 是一些平台无关的Java 类,能够被编译成平台独立的字节码。并且能够动态的被装载并运行在Java 功能的Web 服务器(这样的Web 服务器容器也叫做Servlet 引擎,能够使Web 服务器扩展提供Servlet 功能)。Servlet 容器实现了请求/响应的模式,Servlets 可以和Web 客户端通过这样的模式交互”
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。
老文原创