由于一些异乎寻常的原因,当经验老道的软件开发人员跳转到JSR-286 portlet开发时,他们的脑袋就会一阵嗡嗡,而且貌似他们好像抛弃了在JAVA中基于web软件开发的一切基本原则。Portlet和基于门户的应用与标准的servlet和基于JSP的应用的相同点比不同点要多,当应用开发人员着手建立基于portlet的应用时,在他们开发基于web的Java应用时与基于portlet的开发,他们所学的所有基本概念应用的等同性,不能着重强调出来。
Servlet和JSP开发规则仍在使用
这里有servlet和JSP开发时,开发人员从未违背的规则,但出于某种原因,当那些web开发人员变成portlet开发人员时,这些规则似乎被抛之脑后了:
1.不能在servlet中生产新的线程,也不应用在portlet中生产他们。
门户服务器已经处理了用户调用的线程。产生新的线程只会破坏门户服务器。当然,Java 7提供了所有类型的设施,来进行线程处理,或实现并发程序,但是portlet本身没有合适的地方 ,来安置这些新功能。
2.不能在Servlet中声明实例变量,也不应该在portlet中声明他们
至于实例变量的去向,合适时自然会有机会,但是这些时机通常都会涉及到扩展servlet或portlet框架,而不是创建一个portlet或servlet来对于一个用例。当你试图在portlet中安置一个实例变量时,反而要考虑一下变量的变化范围,如PortletSession和PortletContext,可以更适合用于维护数据。
3.不能同步servlet方法,也不应该同步portlet方法。
同步方法在portlet中也是一个不良的想法。同步portlet方法会在应用中产生一个瓶颈。使复杂的逻辑离portlet层越远越好,如果你确实需要同步一个方法,在它最远的地方同步,而不是在portlet本身中。
Portlet开发不是革新一种新方法来开发应用。这更像是进化的更改,这意味着建立在模式和servlet和基于JSP的开发最佳实践的基础之上,而不是回到反模式和不良的网络编程技术上。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
内存数据网格提供商一头扎进Java
10年的时间里,应用性能解决方案提供商Alachisoft一直在用NCache(针对N-Tier和网格计算.NET应用的内存计算和数据网格产品)为.NET社区服务。
-
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高, 直到把内存吃完应用崩溃,但是这个wrapper
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高 […]
-
Google App Engine for Java 对于目前中国需要学习吗?
-
前无古人后无来者的Java平台
开发人员一直在致力于保持Java的活力,经过20年后,我们感觉从来没有更好的、更令人激动的时刻如同Java社区一样。