细说框架风云 JSF能否拯救WEB江湖
Spring Web框架中一条黑马
2001年Rod Johnson编写一本书叫《J2EE设计开发编程指南》。 这本书的内容构成了Spring框架的雏形。接着Rod Johnson又编写了另外一本书《J2EE without EJB》,并同时推出Spring框架。这两本书迅速的在业界引起了轰动,为Spring的推出作了很好的铺垫。Spring引入IOC(控制反转)的概念,采用POJO对象,AOP支持和轻量级容器来开发企业应用,这些正是业界多年来一直苦苦寻找的解决方案。Spring一推出就红遍了大江南北,迎来了Java企业开发的春天。
笔者认为Spring MVC 是基于请求响应模式最为优秀的开源WEB框架。它来自于Spring,天生就支持IOC 和AOP,这是其它任何WEB框架无法相比的。
Spring MVC 是一个很薄的WEB框架,它清晰的分离了数据和视图。支持多种视图技术(JSP,XML,EXCEL, PDF…)十分方便。
Spring的优势
◆Spring MVC对于表单提交类的应用提供了一个完整的生命周期。
◆Spring MVC 支持页面数据的原生绑定为POJO对象,并可以自定义扩展绑定器,而不是像Struts那样只能把页面数据自动绑定为String 类型。
◆Spring MVC 自定义行为变得十分容易,这得益于Spring框架良好的设计,Spring MVC的控制器也是基于Command模式的。
◆Spring MVC 有良好的数据校验框架,也很容易自定义数据校验行为。
◆Spring MVC 提供了一个良好的异常处理机制,可以方便的自定义各类异常的处理行为。
◆Spring MVC 提供了有用的标签。(注意是有用的,没有用的Spring绝不提供)
◆Spring MVC 支持I18N及文件上传等。
◆Spring 还推出了Spring WEB Flow,用于向导式的WEB应用开发。
虽然Spring 已经大红大紫了,但是Spring MVC却没有流行起来。它出来太晚了,而Struts已经深入人心了,Struts这么多年的表现一直不错,虽然Struts并不是那么优秀。但是它有着庞大的开发人群,关于Struts的资料是铺天盖地。企业很容易找到Struts开发人员,却难以找到Spring MVC开发人员。另外一个客观原因就是Spring太灵活了,Spring MVC也不例外,正因为Spring MVC过于灵活,致使初学者望而生畏。Spring MVC需要进行过多的XML配置,Spring MVC的文档相对比较少,所以现在Spring MVC的使用者有限,但无论如何,Spring MVC是一个非常优雅的WEB开发框架,花费一点学习成本是值得的。
ASP.Net的成功说明了什么?
ASP.Net是一种面向组件,基于事件驱动模型的WEB开发技术。在基于请求驱动模型的WEB开发技术中(如JSP和ASP),程序代码需要混合在HTML标签中。而事件驱动模型与请求驱动模型相比,在一个表单上的组件通过激活应用程序的事件来响应用户的行动。开发人员通过为组件的相关事件编写相应的程序代码来实现相关的逻辑。事件驱动模型的WEB开发技术提供了一种更为直观的编程模式,使得WEB开发就像编写一个VB或Java Swing桌面应用程序一样。用鼠标把相应的控件拖到页面视图,然后再为控件编写相应的事件代码来实现业务逻辑。这样,就把WEB前端开发变成了运用高级语言进行程序开发(在ASP.NET中采用VB..NET或C#)。面向组件和基于事件驱动模型使得WEB开发真正的回归到了传统的开发方式。大大的简化了WEB项目开发的复杂度。
ASP.NET提供了丰富有WEB前端组件。因为ASP.Net是面向组件的,和基于事件的。所以ASP.Net必须提供丰富的组件,并为这些组件定义相关的事件。让开发人员去扩展事件代码来完成逻辑功能。ASP.NET 一开始就提供最实用的WEB组件,如DataGrid用于数据显示,开发人员只需要通过设置属性就可以实现自定义分页显示。而在以前的ASP或JSP则需要编写大量的程序代码才能完成。到ASP.NET 2.0时,微软更是提供了近150多个WEB组件,如在WEB开发中经常用到的树形菜单组件,下拉菜单组件,文件上传组件等。ASP.NET通过提供这些丰富而功能强大的组件,使得WEB应用开发就像桌面应开发一样简单。
正因为ASP.Net带来了一种全新的开发模式,使得以往复杂的WEB应用开发变得简单,让WEB应用更易于发布,并通过微软的商业运作,ASP.NET一扫ASP的阴霏,迅速的占据了大量企业市场份额。
ASP.NET的成功对我们有什么启示呢?可以肯定面向组件、基于事件驱动模型是未来WEB开发技术的发展方向。ASP,JSP等基于请求驱动式的WEB技术必将退出历史的舞台。
因为由厂商来提供丰富而实用淖榧蟠蠹蚧疻EB前端的开发量和开发难度。把复杂的问题交由厂商或开源组织去解决。基于事件驱动模型才是真正的把UI人员和业务程序员分离开来。只有把程序代码与HTML标记分离,才能真正做到UI设计者与程序员分离。
面向组件,基于事件驱动的WEB框架要取得成功必须提供大量实用的WEB组件。只有提供了丰富的,功能强大的WEB组件,开发人员才能从WEB开发中解脱出来。否则如果每个用户都需要去实现自己的组件库,那样的工作量也是非常庞大的。特别是针对一些小型用户。必须要有优秀的IDE工具配套支持,如果没有VS 2003或VS2005开发工具,而是通过简单的文本编辑工具来进行ASP.Net开发,很难想像ASP.Net会成功。要真正的实现像VB或Java Swing编写桌面应用程序那样来开发WEB应用程序,优秀的IDE工具是必不可少的。允许你把组件从组件面板拖放到页面上并通过属性编辑器来定义它的外观和行为,直接为组件的相关事件编写事件代码。
- 达梦数据库企业应用整合系统(11-30)
- 英特尔欲与Sun加强合作 为安腾Java牵线搭桥 (04-18)
- 争议不断 Sun捆绑NetBeans和Java(05-01)
- 推动多核发展 英特尔开放TBB程序(06-26)
- Java攻击隐患难除 安全问题不容忽视(07-06)
- 目前比较流行的数据库系统 (08-20)