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可以获得。
Portlet中的PortletContext 、PortletSession与servlet中的SevletContext、HttpSession是有关联关系的,所有这对servlet生命周期的listener同样对portlet有效
Servlet容器与portlet容器之间的关系
Portlet的容器是servlet容器的扩展,根据中间件厂商的实现方式portlet容器可以单独实现也可以基于servlet扩展。
分享到:
相关推荐
### 开发 IBM WebSphere Portal 6.0.X 中的主题与皮肤 #### 一、引言 随着企业级应用对用户体验需求的不断增长,IBM WebSphere Portal 6.0.X 提供了强大的工具来帮助开发者创建定制化且美观的门户界面。本文档旨在...
在IBM WebSphere Portal环境下搭建开发环境,以及在Apache Pluto Portal环境下搭建开发环境,是开发Portlet应用的先决条件。快速入门部分可能涉及了基础的配置和测试步骤。 #### Portlet概念 Portlet定义了Portal...
在本篇文章中,我们将深入探讨IBM Websphere Portal Server 6.0 (以下简称WPV6)的安装与配置过程。WPV6是基于Java 2 Platform, Enterprise Edition (J2EE) 构建的应用程序,它运行在Websphere Application Server ...
在IT行业中,portlet开发是构建企业级Web应用程序的重要部分,特别是在使用IBM WebSphere Portal或其它支持portlet标准的平台时。Portlet是一种可重用的Web组件,能够在门户环境中提供特定的功能,比如显示新闻、...
常见的portlet portal实现有IBM WebSphere Portal、Liferay Portal和Oracle WebCenter等。 portlet开发中还需要关注的主题包括: 1. **内容和视图管理**:portlet可以动态地提供和更新内容,支持多种视图模式,如...
开发Portlet需要了解其基础概念、生命周期、与servlet的关系以及开发环境的搭建等。 ### Portlet基础知识 Portlet是Portal页面的一个区域,它类似于Web应用中的servlet,但是它运行在Portal容器中。Portal是一个为...
开发portlet时,开发者通常会使用一些特定的工具包,如Liferay Portal SDK或者IBM WebSphere Portlet Factory。Liferay SDK提供了用于创建portlet项目的模板和库,包括构建工具(如Maven)和开发环境集成(如Eclipse...
- 此外,portlet容器如Liferay、IBM WebSphere Portal等也提供了丰富的工具和功能来简化portlet的部署和管理。 7. **portlet 1.0版本**: - 提到的文件都是针对portlet 1.0标准,虽然现在有更新的版本(如Portlet...
WebSphere Portal可以与内容管理系统(如IBM FileNet P8)集成,实现文档的存储、检索和版本控制。此外,还可以通过集成工作流引擎(如IBM Lombardi或IBM Business Process Manager)来自动化业务流程。 10. **...
IBM是Portlet技术的重要推动者之一,其WebSphere Portal产品就广泛支持Portlet开发。 在“Portlet实例代码”中,我们可能找到的是一个简单的Portlet开发示例。这个示例可能是用Java语言编写的,因为Java是Portlet...
7. **portlet部署**:了解如何将portlet部署到portlet容器(如Liferay、IBM WebSphere Portal等)中,以及如何调试和优化portlet的性能,是实际开发中的重要技能。 8. **portlet开发工具**:一些IDE如Eclipse和...
##### 2.2 Servlet容器与Portlet容器的关系 虽然Portlet在很多方面类似于Servlet,但它们运行在不同的容器中。Servlet容器主要用于处理传统的Web应用程序,而Portlet容器则是专门用于处理Portlet应用程序。这两个...
Portlet运行在支持JSR 286的门户服务器上,如IBM WebSphere Portal、Liferay Portal或Apache Pluto。开发者需要在这些服务器上部署portlet应用,然后通过门户管理员界面添加和配置portlet。 8. **portlet的交互** ...
这个标准为portlet开发者提供了一种统一的方式,使得portlet可以在不同的portlet容器(如IBM WebSphere Portal或Liferay Portal)中运行。Portlet的主要目标是将内容、功能和交互性集成到一个统一的Web门户中。 一...