SpringMVC原理

1、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实现了零配置,基于方法的拦截,加载一次单例模式注入,所以开发效率和性能高于Structs2

Struts2有自己的拦截Interceptor机制,SpringMVC这是用的是独立的Aop方式,这样导致Struts2的配置文件量还是比SpringMVC大。

Spring MVC和Spring是无缝的,项目的管理和安全上也比Structs2高,Structs2配置起来比Spring MVC麻烦。

2、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原理 (2).png

3、结合用户的登录请求解释Spring MVC原理

用户在前端页面填写好账号与密码后发送请求(/login)到前端控制器DispatcherServlet,DispatcherServlet收到请求后根据url调用HandlerMapping处理器映射器,处理器映射器根据xml配置或者注解查找到具体的处理器,比如login方法,然后生成这个类的对象一并返回给前端控制器,前端控制器拿到这个处理器对象后调用HandlerAdapter处理器适配器,由它去调用具体的处理器(Controller),在Controller中的login方法中拿到当前用户的账号密码,调用service方法,service层中又调用dao层,dao层根据账号密码在数据库中进行查询,并返回是否查找到的结果,一层一层返回给Controller,控制器根据查询结果返回不同的ModelAndView,存放的是虚拟的View,查询成功返回主页虚拟视图,查询失败返回当前页面的虚拟视图和错误信息,处理器适配器再将ModelAndView返回给前端控制器,前端控制器将ModelAndView传给ViewResolver视图解析器,两种不同的ModelAndView经过视图解析器解析后返回具体的View。前端控制器再根据具体的View进行视图渲染最后将渲染后的视图返回给用户。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 先来看一下什么是 MVC 模式 MVC 是一种设计模式. MVC 的原理图如下: SpringMVC 简单介绍 S...
    叫我不矜持阅读 4,941评论 0 9
  • SpringMVC的工作原理图: SpringMVC的工作原理图: SpringMVC流程 1、 用户发送请求至前...
    我不饿我不想吃东西阅读 4,296评论 0 1
  • SpringMVC原理 springMVC架构流程:用户发送请求到前端控制器DispatcherServletDi...
    煗NUAN阅读 1,828评论 0 0
  • 说来惭愧,一直没有正儿八经的给这部著作写过书评,不是不想,只是不敢,因为这部作品带给我的冲击太大,至今回味起来依然...
    戎马一生_神来阅读 5,171评论 1 4
  • 10.15-10.21周记 一、工作 二、沟通 三、意外 一、工作 本周主要的工作基调是跟踪回款 年底第四个季度,...
    diy1947阅读 2,490评论 1 0

友情链接更多精彩内容