Struts2与SpringMVC的异同点

Dear 丶 2021-12-07 12:15 411阅读 0赞

Struts2与SpringMVC的异同点

相同点:struts2与SpringMVC都是控制层(Controller)的框架,都是负责接收浏览器传递过来的数据、调用Service层业务、跳转页面(如果有数据,则将数据传递到前台页面展示)三个功能。

不同点:

1、框架机制

SpringMVC使用的是servlet,即org.springframework.web.servlet.DispatcherServlet;

Struts2使用的是filter,即org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

2、拦截机制

Struts2是类级别的拦截器,一个Action对应一个request上下文,每一次请求都会创建一个Action,在与Spring整合时的原型模式为prototype(多例);传递参数通过成员变量传递参数(必须提供相应的set、get方法);

SpringMVC是方法级别的拦截,一个方法对应一个request上下文,在与Spring整合时默认为singleton(单例),可以通过@Scope注解进行修改;传递参数通过Model或者MedelMap传递参数,底层封装了request作用域。

3、性能方面

由于SpringMVC与Spring是无缝衔接的(同属于Spring全家桶),所以在开发效率和运行效率上要高于Struts2。

4、与Ajax的集成

SpringMVC只需要在方法上加上@ResponseBody注解即可,SpringMVC会自动将返回值数据转换成json串,很是方便。

Struts2则需要自己手动将返回的数据转换成json串。

5、配置文件的大小

SpringMVC可以通过写注解的方式获取对象,可以减少配置文件的大小;Struts2可能会配置一写自定义拦截器,导致配置文件所占内存增加,从而使得SpringMVC的配置文件要小于Struts2的配置文件。

发表评论

表情:
评论列表 (有 0 条评论,411人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SpringMVCStruts2对比

     目前企业中使用SpringMvc的比例已经远远超过Struts2,那么两者到底有什么区别,是很多初学者比较关注的问题,下面我们就来对SpringMvc和Struts2进行各方

    相关 SpringMVCStruts2对比

    下面这些东西基本都是我从网上粘贴过来的,没有那么多耐心和时间一个字一个字的敲了,但是基本能表明我选择SpringMVC的思路和原因。 ![1354171519_5139.pn

    相关 SpringMVCStruts2区别

    一、拦截机制的不同 1、SpringMVC是基于类中的方法开发的,是方法级别的拦截。注解开发中使用@RequestMapping将 url 和方法进行映射,如果根据 url