SpringMVC超级详细讲解

SpringMVC:

一、SpringMVC是什么?

springmvc是一个功能强大且灵活的,基于Spring框架的一个Web框架。
springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。
springmvc是一个基于mvc的web框架。

二、SpringMVC核心组成

6大组件:
1、 DispatcherServlet前端控制器
作用接收请求,响应结果,相当于转发器,中央处理器。
有了DispatcherServlet减少了其它组件之间的耦合度。
(DispatcherServlet几乎是web.xml中必须配置的一个Servlet,绝大部分情况下也只需要配置这个Servlet就够用了。它有什么作用呢?顾名思义,它是一个派发器,即对任意一个web请求都会根据一定的规则派发到对应的处理器上处理,并最终将结果返回。)

2、HandlerMapping处理器映射器
作用:根据请求的url查找Handler

3、HandlerAdapter处理器适配器
作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler

4、Handler处理器(需要程序员开发)
注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler

5、ViewResolver视图解析器
作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)

6、View视图 (需要程序员开发jsp)
View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf…)

三、SpringMVC项目架构图

SpringMVC框架的调用

四、SpringMVC架构原理解析

第一步:(浏览器/客户端)发起请求到前端控制器(DispatcherServlet)
第二步:前端控制器请求HandlerMapping查找 对应处理器Handler ,可以根据xml配置、注解进行查找
第三步:处理器映射器向前端控制器返回找到的处理器Handler(相当于controller类中方法)

第四步:前端控制器调用处理器适配器去执行处理器Handler
第五步:处理器适配器去执行Handler
第六步:Handler执行完成后给适配器返回ModelAndView
第七步:处理器适配器向前端控制器返回ModelAndView
ModelAndView是SpringMVC框架的一个底层对象,包括 Model和view

第八步:前端控制器请求视图解析器去进行视图解析
根据逻辑视图名解析成真正的视图(jsp)
第九步:视图解析器向前端控制器返回View

第十步:前端控制器进行视图渲染
视图渲染将模型数据(在ModelAndView对象中)填充到request域
第十一步:前端控制器向用户响应结果

五、补充1

从宏观角度考虑,DispatcherServlet是整个Web应用的控制器;
从微观角度考虑,Controller是单个Http请求处理过程中的控制器,
而ModelAndView是Http请求过程中返回的模型和视图。

六、补充2

1. DispatcherServlet本身是类

2. HandlerMapping接口常用的实现类
RequestMappingHandlerMapping、BeanNameUrlHandlerMapping、SimpleUrlHandlerMapping
(学习连接:https://www.cnblogs.com/tengyunhao/p/7658952.html

3. HandlerAdapter接口常用的实现类
RequestMappingHandlerAdapter、HttpRequestHandlerAdapter、SimpleControllerHandlerAdapter

4. Handler接口常用的实现类
HttpRequestHandler

5. ViewResolver接口常用的实现类
InternalResourceViewResolver、UrlBasedViewResolver、XmlViewResolver、BeanNameViewResolver、ResourceBundleViewResolver
(学习连接1:https://blog.csdn.net/w372426096/article/details/78431547
(学习连接2:https://blog.csdn.net/niqinge/article/details/79130106

6. View接口常用的实现类
RedirectView、FreeMarkerView、VelocityView、JstlView
(学习连接:https://blog.csdn.net/fengyuhan123/article/details/79723310

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值