Java Portlets的优点和缺点?

vic*_*ugo 6 java evaluation portlet

我有一个项目,我的客户端要求我使用portlets 1.0规范和Websphere Portal Server 6.0.我之前没有使用过portlet,但是我听说过它们总是受到不好的批评.除了显而易见的使用它们之外还有什么原因?如果没有原因,我可以使用哪些参数来避免它们?

mj1*_*531 9

作为有几个工作(包括我当前的工作)开发Java portlet的人,我会说不要使用它们.

这是问题所在:

如果您只想使用所选门户的预先存在的功能,请使用门户.

如果您使用portlet只是构建一个小型,轻量级,主要是只读的基于Web的仪表板,您可以快速查看不同的信息,那就没问题.

但是,如果您(或者更有可能是组织结构图上的某个人)认为portlet是将一堆不同的Web应用程序放在页面上并让它们"正常工作"的一种方式,那么您将走向一个受伤的世界.Portlet是高度受限制的,独立的功能岛,而不是页面上的小方块中的Web应用程序.

我的每个基于portlet的工作都犯了这个错误,隧道尽头也没有亮点.作为一个portlet开发人员,这里有一小部分你曾经常常在常规Web应用程序中做的事情,你无法在portlet中可靠地做到:

  • 生成其他页面的URL.您需要特定于供应商的方法来执行此操作,因为Portlet API仅允许您生成以生成它们的portlet为目标的URL.
  • 读取和设置HTTP标头或设置HTTP响应代码(因此没有重定向或HTTP缓存,因为您不拥有将放置portlet的页面)
  • 必须命名生成的页面中的所有标识符.这意味着HTML id属性和JavaScript函数名称.由于必须在运行时确定名称空间以确保唯一性,因此您不能将这些Javascript函数驻留在单独的浏览器可缓存文件中,它们必须位于portlet的响应主体中.

Portlet感觉好像它们是为90年代中期到晚期(AJAX之前)的Web开发状态而设计的.但它们不适合当今的Web开发环境(AJAX,单页富Web应用程序等),它们假设您可以完全控制请求/响应周期.


Nat*_*ate 5

我对portlet的问题让我想起了与EJB相同的问题 -

  • portlet要求您编写只能在特殊服务器上托管和运行的特殊代码;
  • 每个portlet服务器供应商都有自定义扩展/配置/附加功能,因此更改服务器供应商并非易事;
  • portlet似乎过于复杂,无法覆盖90%希望使用它的人所需要的功能

我建议谷歌小工具作为Hibernate到portlet的EJB -

  • Javascript框架 - 服务器端部分可以用任何语言编写,托管在任何服务器上.
  • 使用起来更简单
  • 许多门户服务器都支持它,并且它在各个供应商之间更具可移植性,因为它并不复杂,并且它不是供应商实现(和扩展)的规范