上一篇文章,我们讲了一下spring 作用域留下了一个问题,Servlet 和 portlets 的区别?今天我们来讲一下它们之间的区别
- portlets
portlets 是JSR-168标准的一部分,用来管理门户容器和组件。一个门户页面可以显示一组不重叠的portlet窗口,其中每一个portlet窗口显示一个portlet。因此,可以说一个(或一组)portlet就像一个在门户网站上运行的基于Web的应用程序。 Portlet应用程序的一些例子包括电子邮件,天气预报,论坛和新闻等。
Portlet标准的目的是使开发人员开发出的portlet可以插入到任何支持该标准的门户网站。 - servlet
Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。 - Servlet & portlets
- 相同点:
Servlet 和 portlets 都是基于web的组件,都是通过Java语言来实现的
Portlets 通过Portlets 容器管理,而Servlet 也一样通过Servlet 容器管理
Portlets 和 Servlets 都能生成静态和动态的内容
Portlets 和 Servlets的生命周期都是通过容器进行管理
客户端和服务端模式都在应用在Portlets 和 Servlets上
Portlets 和 Servlets 打包和发布的都是相同的,使用 WAR/EARS - 不同点:
portlets 改变配置信息后不需要重启服务器,而servlet 需要重启服务
Portal提供了灵活性,可以动态地混合和匹配并在新网站上创建新页面
Portal能在相同的页面上放置多个实例
Portlet支持持久配置和自定义,配置文件信息
Portlet API的典型方法是doView(),doEdit(),doHelp()和processAction(),而servlet的方法是doService(),doPost(),doGet()。
portlet的内容类型只能是cHTML,XHTML,WML。它不支持其他内容类型。
Servlet可以呈现完整的Web页面,而Portlet呈现html片段。门户将这些片段聚合到一个完整的网页中。
- 总结
个人觉得 portlets 能更灵活可以嵌入到任何页面上
参考文档:
what is the difference between a portlet and a servlet?
Portlet