JavaWeb学习笔记(二十)SpringMVC和Struts2之间的比较

前端时间学习了这两个框架,发现这两个框架都是对MVC模式下表现层的处理,为了便于理解这两个框架,将这两个框架放在一起进行比较。

经过对比发现有以下几点不同

(1)核心控制器区别

  1. SpringMVC采用的是前端控制器DispatcherServlet,其本质是一个Servlet。
  2. Strurs2框架采用的是预处理控制器StrutsPreparedAndExcuteFilter,其本质是一个Fileter。

(2) 性能

  1. Struts2是类级别的拦截,每次请求就会创建一个Action实例,这里注意和Spring整合的问题,Spring默认的是单例模式。
  2. SpringMVC是基于方法级别的拦截,性能相比于Struts2较高。这里需要注意,由于是单例模式,一定要慎用全局变量。防止造成线程安全问题。

(3) 参数传递

  1. Struts2框架可以用成员属性来接收参数,说明多个方法是可以共享参数的,除此之外还有值栈可以传递数据。
  2. SpringMVC的方法之间是独立的,参数通过请求数据获取,各方法之间参数独立。

(4) 拦截机制

  1. Struts2框架中有相应的拦截器,配置之后即可使用
  2. SpringMVC框架即可以采用AOP方式实现,也可以实现自己的拦截器类。

(5)Ajax交互

  1. Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来相对不方便。
  2. SpringMVC处理Ajax非常方便,使用@ResponseBody就可以收到请求,返回响应数据。

(6)与Spring框架的集成方面

  1. Struts2框架与Spring集成比较繁琐
  2. SpringMVC与Spring可以无缝对接。
发布了66 篇原创文章 · 获赞 26 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Time__Lc/article/details/93846113