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容器。