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扩展。
转载于:https://www.cnblogs.com/seaairland/archive/2010/12/13/1904052.html
Portlet开发指南第二章相关推荐
- Vert.x Java开发指南——第二章 使用Vert.x编写最小可用Wiki
第二章 使用Vert.x编写最小可用Wiki 版权声明:本文为博主自主翻译,转载请标明出处. https://blog.csdn.net/elinespace/article/details/8037 ...
- Unix/Linux下的Curses库开发指南——第二章 curses库I/O处理
第2章 curses库I/O处理 2.1 curses库简介 curses库是curses开发包中最重要的一个库,其中提供了一些基本的屏幕操作函数,包括输入/输出,屏幕初始化,屏幕处理中断以及窗口的创 ...
- Python精确指南——第二章 界面开发
2 Python GUI 借助Python语言的优势,使用Python的界面库开发界面程序,开发周期更短.但因为Python的界面开发库底层实现一般不是Python,只是为Python封装的接口,所以 ...
- 训练指南第二章-基础问题
训练指南第二章-基础问题 P170 2 / 4 Problem A UVA 10943 How do you add? 1 / 2 Problem B UVA 10780 Again Prime? N ...
- Web前端开发笔记——第二章 HTML语言 第四节 超链接标签
目录 前言 一.超链接标签 (一)链接其它子网页 (二)链接其它站点 (三)虚拟超链接 二.从当前页面链接到指定位置 三.链接的访问情况 四.在新窗口中打开链接 例题 结语 前言 本节介绍超链接标签即 ...
- Java7并发编程指南——第二章:线程同步基础
Java7并发编程指南--第二章:线程同步基础 @(并发和IO流) Java7并发编程指南第二章线程同步基础 思维导图 项目代码 思维导图 项目代码 GitHub:Java7ConcurrencyCo ...
- [翻译]现代java开发指南 第二部分
现代java开发指南 第二部分 第二部分:部署.监控 & 管理,性能分析和基准测试 第一部分,第二部分,第三部分 =================== 欢迎来到现代 Java 开发指南第二部 ...
- ZeroMQ 中文指南 第二章 ZeroMQ进阶【转载】
此文章转载自GitHub : https://github.com/anjuke/zguide-cn 作者信息如下. ZMQ 指南 作者: Pieter Hintjens ph@imatix.com, ...
- Web前端开发笔记——第二章 HTML语言 第六节 区域标签、列表标签
目录 一.区域标签 (一)div标签的定义 (二)div标签的属性 二.列表标签 (一)列表标签的定义 (二)列表标签的类型 1.有序列表 (1)有序列表的定义 (2)有序列表的属性 2.无序列表 ( ...
最新文章
- 二维“玄”如何“抖动”出三维世界?
- 机器学习笔记(九)聚类
- Linux多线程同步——信号量
- MySQL: ERROR 1040: Too many connections”的异常情况1
- mysql优化(九)
- 安装sqlserver2008,重新启动计算机不通过的解决办法
- 解决java compiler level does not match the version of the inst
- 95-241-100-源码-Flink语义-Flink的exectly-once系列之两阶段提交概述
- VS2012--应用程序无法正常启动0xc000007b 的错误
- 淮阴工学院计算机专业的考研率,淮阴工学院江淮学院(淮阴工学院考研录取率)...
- python == 字符编码
- vue中文件上传方法
- 没事学学docker(二):本地Centos7和阿里云服务器安装docker及其解决安装出现的问题
- base64转码原理
- uni-app 微信小程序全局配置分享好友、朋友圈...
- 【云和恩墨大讲堂】高凯 | Oracle 12c 新特性-多租户的维护管理
- java通过API给企业微信用户发送微信消息
- ValueError: empty range for randrange() (0, 0, 0)
- mac实用小技巧之解压.xip文件
- Spring Boot 3.0 正式发布,这份升级指南必须收藏
热门文章
- C++中实现回调机制的几种方式
- 最小生成树kruskal算法并查集版 C语言实现
- gin使用 GET, POST, PUT, PATCH, DELETE, OPTIONS
- 共用体和枚举,写写意思下
- strcpy函数的使用
- linux内核关于io的变迁
- 【漏洞复现】ThinkPHP5 5.x 远程命令执行(getshell)
- ICO的“金三角”与区块链的“新大陆”
- ZOJ 1696 Viva Confetti 计算几何
- Greenplum,HAWQ interval parser带来的问题 - TPCH 测试注意啦