Portlet和Servlet的相同點:java
(1)都是基於java技術的web組件web
(2)都是被專門的容器管理session
(3)都是生成動態內容app
(4)生命週期都被容器管理ide
(5)都是與web客戶端經過request/response方式交互編碼
Portlet和Servlet的不一樣點:url
(1)Servlet生成整個web頁面,而Portlet只生成內容片段,而Portal來負責將這些片段組裝到同一個頁面。生命週期
(2)Servlet能夠被映射爲url,可是Portlet不能夠被直接映射爲url事件
(3)Web客戶端能夠直接同Servlet交互,可是若是Web客戶端要和Portlet交互須要經過Portal 系統。it
(4)Servlet的請求類型單一,可是Portlet有多種request,好比actionRequest,renderRequest.
(5)Portlet定義了Portlet Mode和Window State
Portlet的額外功能:
(1)Portlets能夠持久化存儲和訪問數據
(2)Portlets具備URL重寫的功能,能夠讓Portal來生成訪問Portlet的連接和action
(3)Portlet能夠在session的兩個範圍上存/取數據,portlet私有域或者application域上
(4)Portlet之間能夠交互,發送/接收事件
Portlet不具有的可是Servlet具有的功能:
(1)Portlet的response(actionResponse,renderResponse)都沒法設置字符編碼
(2)Portlet不能夠經過URL直接訪問
Portlet容器是Servlet容器的擴展,好比Tomcat是Servlet容器,可是Liferay_Tomcat_Bundle是Portlet容器。