spring MVC与Structs2的区别

#千锋逆战#

一.Spring MVC与Structs2的区别

Structs2采用Filter实现,Spring MVC则采用Servlet实现Structs2是类级别的拦截,每次请求都会创建一个Action,一个Action对应一个request与response上下文。Spring MVC是方法级别的拦截,一个方法对应一个request上下文Structs2的属性参数是让多个方法共享的。Spring MVC一个方法对应一个request上下文,所以方法之间是独立的,独享request与response数据,方法之间不共享变量。Struct2只能多例开发,Spring MVC可以单例开发Spring MVC集成了Ajax,使用非常方便,只需要一个注解@ResponseBody就可以实现,然后直接返回响应文本即可。Structs2也继承了Ajax,但是Action中处理时一般必须安装插件或者自己写代码集成,使用起来相对不便。Sttucts2是类级别的拦截,每次请求对应实例一个新的Action,需要加载所有的属性值注入,Spring MVC实现了零配置,基于方法的拦截,加载一次单例模式注入,所以开发效率和性能高于Structs2Struts2有自己的拦截Interceptor机制,SpringMVC这是用的是独立的Aop方式,这样导致Struts2的配置文件量还是比SpringMVC大。Spring MVC和Spring是无缝的,项目的管理和安全上也比Structs2高,Structs2配置起来比Spring MVC麻烦。

二.Spring MVC原理

1.用户发送请求至前端控制器DispatcherServlet(也叫中央处理器).

2.DispatcherServlet收到请求调用HandlerMapping处理器映射器

3.处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet.

4.DispatcherServlet调用HandlerAdapter处理器适配器。

5.HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。

6.Controller执行完成返回ModelAndView.

7.HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet.

8.DisPatcherServlet将ModelAndView传给ViewResolver视图解析器。

9.ViewReslover解析后返回具体View.

10.DispatcherServlet根据View进行渲染视图

你可能感兴趣的:(spring MVC与Structs2的区别)