<%@ page contentType="text/html; charset=gb2312"%> Spring MVC初探
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
Spring MVC初探
     发布者:干煸四季豆 发布时间:2007-01-10

今天,用一天时间研究了一下Spring MVC,spring-reference1.2.3关于MVC的那章周末的时候差不多看了一遍,并不是很仔细。不过也差不多了解了Spring-MVC是啥子玩意咯。

其实Spring MVC与Tapestry有“异曲同工”之妙。

先说“同工”,Tapestry最本质的特点是什么?我认为页面表现与java逻辑彻底相分离。而spring MVC也是相同的特点,它将页面的java逻辑从页面表现从抽取出来。Tapestry和Spring MVC在这个“分离原则”上,具有相同的理念。。。那么它们的“异曲”又是什么呢?

Tapestry将整个页面表现及逻辑全部纳入其框架,所以,它的页面表现必须要求为html后缀,实际上,虽然我们最开始编辑的是一个单一的几乎绝对纯洁的HTML,但是在运行时,这个纯洁的HTML通过Tapestry被过滤了一遍。过滤的目的是为了给每个组件生成唯一的HTML标签的id以及展现组件功能。由于整个HTML都在Tapestry框架之中,所以对任何组件的操作,都可以在组件对象池里根据唯一的id获取其实例。而每一个涉及到URL的组件都有其对应的service,因此对组件“特定”的URL解析也是“特定”的。

再来看看Spring MVC,它如何将java逻辑与页面表现分离呢?答案在其DispatcherServlet中。Spring MVC通过最传统的在web.xml中过滤url方式,然后在[servlet-name]-servlet.xml配置文件中去匹配。一旦发现匹配的url,就触发配置文件中对应的java类。用配置文件来控制,是Spring一贯的特点。因此,Spring MVC的页面表现,不拘泥于任何文件类型,java,htm,html等等,它所关心的仅仅是URL,甚至可以用链接标签跳转到一个根本不存在页面,比如:http://localhost/test,只要[servlet-name]-servlet.xml中能够匹配到这个URL中的/test,那么就不会报500错误,即进入了Spring MVC框架。至于从java逻辑到页面表现的数据返回,Spring MVC用的是spring.tld标签库。

这种“异曲”造成了Spring MVC和Tapestry完全不同的思维理念,即Spring MVC仍然是面向标签,而Tapestry则面向组件。

呵呵,所以我今天发现一个很有趣的现象。如果在JSP中使用Spring MVC,那么Spring MVC框架会发生作用,而JSP本身也会有JSP的Servlet。我想不出怎样才可以将两种Sevlet进行交互,在Spring官方论坛一定有人提供了解决办法。。。呵呵,不过最后我发现这是个很愚蠢的想法,既然是使用Spring MVC将JSP中java逻辑分离出来,那么又何必在JSP中再用Java?如果要在JSP中用Java,又何必画足添舌用Spring MVC?呵呵。。。

Spring MVC的确是简单易学。周末嘛,玩游戏的时间居多,算下来看spring MVC也就两三个小时,今天算一天,那么从接触到应用,我觉得三天时间差不多能够搞定。在这点上,的确比Tapestry拥有很大的优势。我在javaeye上看见有人说,用Spring MVC(及开发工具)开发项目非常快。我想,如果有工具能够操作[servlet-name]-servlet.xml配置文件的话,的确应该比较快。当然,这还牵扯到开发人员的熟练度。。。另外,我还看不出Spring MVC有任何复用的可能性。而且[servlet-name]-servlet.xml中写入很多配置的话,还是比较混乱。就如同我们现在项目中的applicationContext.xml,当然并不是非常混乱得很难识别,不过还是无法一眼看出各种URL与对应类之间的各种配置关系。

Spring MVC 值得称赞的另外一个优势,就是其单元测试非常容易。因为Spring的页面逻辑类不像Tapestry,Tapestry的java文件全部是抽象类,自然无法作单元测试。

我之所以研究Spring MVC,实际上纯属“路过”。首要目的是为了了解Spring webflow。所以对Spring MVC的研究,差不多到此为止,了解一下即可。。。

(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
关于实施MVC框架结构的WEB项目的一些见解
选择JSF不选Struts的十大理由
用Struts建立MVC应用的介绍
Strust中的多模块多配置文件技术
Java+XML+MVC 框架StrutsCX简介
设计模式的原则
 
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号