Spring5-Spring MVC基础

什么是Spring MVC

Spring MVC是Spring框架的一个模块,也是基于MVC设计模式的.

什么是MVC

MVC是一种设计模式,分别表示模型 视图 控制器.
M,Model,引用系统数据,模型层有pojo service dao.
V,View,组织和展示模型数据.
C,Controller,处理用户请求.

Spring MVC 执行流程

Spring5-Spring MVC基础_第1张图片
Spring MVC 执行流程(此图片来自网络)

1.用户发起请求到前端控制器(DispatcherServler),前端控制器负责接收用户请求与响应.
2.前端控制器调用 HandlerMapping(处理器映射器),找到URL所对应的 Handler.并返回一个 HandlerExecuteChain对象.其中包含有拦截器链与URL对应的 Handler.
也就是说 HandlerMapping主要是帮我们查找要 Handler,并返回一个 HandlerExecutChain对象.
3. DispatcherServler(前端控制器)调用, HandlerAdapter(处理器适配器)来执行 Handler并返回 ModelAndViewHandlerAdapter,然后 HandlerAdapter再将 ModelAndView返回给 DispatcherServler(前端控制器).
4. DispatcherServler调用 ViewResolver(视图解析器),将逻辑视图解析成物理视图并返回 View对象.
例如我们 ModelAndView中存放的视图名为"user"(逻辑视图),通过 ViewResolver(视图解析器),解析为"/WEB-INF/user.jsp"(物理视图).
5.前端控制器进行视图渲染,将模型数据填充到Request 域中.
6.前端控制器向用户响应结果.

Spring MVC 与 Struts2对比

入口
Spring MVC入口是servlet,而Struts2是filter.
因为我们在配置web.xml的时候使用了不同的标签进行的配置.

对request请求参数的封装
SpringMVC的方法之间基本上独立的,独享request response数据,请求数据通过方法参数进行传递.
Struts2把request请求参数封装到Action的属性上.虽然方法之间也是独立的,但Action变量是共享的,也就是说我们每次请求就要创建一个Action.

对于ajax
SpringMVC集成了Ajax只需一个注解@ResponseBody就可以.
Struts2拦截器集成了Ajax,但是在Action中处理时需要先继承json-default

你可能感兴趣的:(Spring5-Spring MVC基础)