1、Spring MVC 开发效率和性能要优于Struts2。
2、Spring MVC继承了 Ajax,使用 @ResponseBody注解写入 HTTP 响应正文,一般在异步获取数据时使用,使用@RequestBody 注解则是将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。
3、Struts中使用Ajax 比较麻烦。
4、Spring MVC 通过前端控制器 DispatcherServlet 完成请求的分发。入口是一个Servlet。
5、Struts2 通过 FilterDispatcher(2.1.3以前)或StrutsPrepareAndExecuteFilter(2.1.3和以后)完成请求的分发。入口是一个 Filter。
6、Spring MVC 是基于方法级别传递数据。单实例情况下不存在线程安全的问题。因为SpringMVC的参数是在控制器的方法中传递的。
7、Struts2是基于类级别传输数据。Struts2单实例情况下有线程并发问题,多实例情况下没有线程并发问题,但是效率又很低。也可以在单实例情况下使用ActionContext类传递数据,但是比较麻烦。