struts2 和 springMVC的区别

本文对比了Struts2和SpringMVC两大Web框架的实现机制、处理方式、性能特点、参数传递方式及设计思想等内容。Struts2基于filter机制,每次请求创建一个action实例;SpringMVC则基于servlet机制,采用方法级别的拦截。

首先说一下Struts2的的要点

  实现机制:  struts2 基于filter机制

 处理方式:   struts2是类级别的拦截,每次来个请求就会创建一个action,然后调用setter,getter方法把request中的                        数据 注入,struts2实际上是通过setter getter方法同request打交道的。Struts2中一个action对象对应一                     个request上下文;

    性能:        struts2是基于类的,每次发一次请求都会实例一个action,每个action都会被注入属性;

   参数传递:    struts2接受参数的时候,可以用属性来接受参数,说明参数是让多个方法共享的

   设计思想:    struts2更符合oop编程思想,struts2脱离了servlet,struts2的action可以是一个普通的java类

   Interceptor的实现机制:    Struts2有自己的interceptor机制

   优点 :    struts2的多层拦截器,多实例action性能都很好,并不是导致性能问题的原因

   缺点:  struts2由于采用了值栈,OGNL表达式等,会导致性能下降,如果避免使用或者减少使用性能还是不错的;

               Struts2需要针对每个Request进行封装,把Request,Session等Servlet生命周期的变量封装成一个一个                        Map,供给每个Action使用,并保证线程安全。所以在原则上,是比较耗费内存的;


 SpringMVC的要点

       实现机制:   springmvc 基于servlet机制

       处理方式:   springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又和一个url对应。所以                           说从框架本身上,springmvc就容易实现restful url

        性能:      springmvc会稍微比struts2快,springmvc是基于方法的设计

   参数传递:    springmvc是基于方法的,每个方法都可以设置自己的参数

  设计思想:      springmvc在servlet上扩展

   Interceptor的实现机制: spring mvc用的是独立的aop方式

    优点 :  除了spring-mvc.xml基本可以做到零配置。方法的访问支持restful风格,参数的传递和配置都很灵活,                          springmvc3的验证也是一个亮点,支持jsp303处理ajax的请求更是方便,只需一个注解@ResponseBody,                  然后直接返回响应文本即可;springMVC是spring的一个子框架,于spring整合的话,是无缝整合


   缺点:    基于springmvc的注解非常灵活,不利于维护,配置文件可以看清所有的mvc框架,






    




   









转载于:https://my.oschina.net/lichao100/blog/392203

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值