请讨论什么是端口组件以及为何使用它们
我为什么要在Tomcat和GWT上使用Java Portlets?使用portlets会让我不需要使用JSP和JSF吗?Jboss在portlet的发展过程中扮演了什么角色?Jboss符合portlet的JSR标准吗?
有哪些portlet的实现或品牌可以在GAE Java和GAE Python上运行?portlet规范是因为PHP内容管理系统的影响而产生的吗?
在.NET中,portlet和portlet JSR的对应物是什么?
3 个回答
为什么我想在Tomcat和GWT之上使用Java Portlets?
这些技术其实没法直接比较。如果你是从普通网页开发过来的,可能会觉得Portlets有点限制太多。但Portal服务器的价值主要在于它们给管理员和用户提供的控制权——虽然这可能让你的工作变得更复杂,但这并不重要。
使用portlets会让我不需要使用jsp和jsf吗?
你可以像在Servlet中那样直接写输出内容。不过,你可能还是需要一种视图技术(这需要支持portlets)。
Portlet是一种本意良好但方向错误的尝试,目的是为网页应用提供一个可重用的小部件接口。可以把它想象成个性化的谷歌首页,上面有天气、新闻、邮件等小部件。
可惜的是,他们搞得有点乱。Portlet API就像个麻烦的家伙,真让人不爽,而且几乎没有什么实际的应用。我用过的唯一一个是JBoss Portal,但它有点笨重,而且bug不少。还有Liferay,可能也是个portlet服务器,但它的主页内容太花哨,信息却很少,所以我也不太清楚。
Spring提供了一个MVC框架来帮助使用portlet API,试图减轻一些痛苦,但老实说,我真希望他们别费这个劲,这样只会让文档变得更复杂。
总的来说,这整个东西看起来就像是在寻找一个问题的解决方案。
如果你正在使用一个框架,并且这个框架支持端口(portlets),那么你可能会发现端口会很有用,因为这个应用程序是基于这个想法构建的。不过,正如其他人提到的,如果你刚开始一个项目,还有很多其他技术可以用来实现你的需求,而且会更简单、更稳定。
举个例子,我在南佛罗里达大学工作时,学习管理系统是(现在仍然是)Blackboard,他们现在支持端口:http://www.ja-sig.org/wiki/display/JSG/Blackboard+Portlet。所以,如果这个应用程序提供了一个API,并且希望人们使用端口,那么看看端口可能是个好主意。
更新:
在看完这个问题后,我发现有几件事情我之前没注意到。
端口的出现似乎是想模仿谷歌主页的样子,让你可以在网页上放置多个不相关的信息块,比如你可以同时查看你的股票投资组合和你喜欢的冰球队的比分。我觉得这并不是受到PHP内容管理系统的影响,而是一个早就准备好的想法。如果你需要服务器代码来帮助提取信息,并将其整合到一个应用程序中,这就是一种方法。
在ASP.NET中,我能想到的和端口最接近的东西是控件。我可以有一个股票投资组合控件,当我把它放到我的页面上时,你可以设置选项,它会显示你的股票和冰球队的比分。
并不是每个人都使用JSF,所以控件需要手动编写,可能是用JSP和servlet,以及JavaScript。