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开发指南第二章的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DELAY INIT 延迟初始化
- 下一篇: 云计算背后的秘密(1)-MapReduc