版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38016931/article/details/81416041
尚硅谷的视频进入源码分析阶段,想听听不懂,不听的话出现断层。中间又花了点时间学习了下markdown语法,现在写下第一篇markdown博客,记录尝试看黑马程序员的不一样的收获,两个都是好视频,但总是怕只看了一个而漏掉另一个的重要内容,所以尚硅谷视频看不懂了,过来看看黑马,当是复习吧!
SpringMVC框架
- 什么是SpringMVC
SpringMVC是spring框架的一个模块,所以SpringMVC和Spring是不需要中间层整合层来整合的!SpringMVC是一个基于mvc的web框架。 什么是MVC
MVC是一种设计模式,MVC在b/s系统下的应用可以看下面的序列图(markdown纯手打,有错望指出)- SpringMVC框架工作流程序列图
这个比较难,梳理起来还是比较复杂的!
我们可以看到,该序列图中大部分的箭头都是和DispatcherServlet有关,这就很好地降低了其他组件之间的耦合性,都通过DispatcherServlet来进行转发!
- 对序列图的具体讲解
User:用户
DispatcherServlet:前端控制器,直接接受用户请求,就是我们在第一个学习笔记的实例程序中web.xml配置的Servlet!(需要开发人员添加)
HandlerMapping:处理器映射器
Handler:处理器平常叫controller,即控制器(需要开发人员添加)
HandlerAdapter:处理器适配器,适配不用的Handler,使得不同的种类的Handler也能发挥作用!
ViewResolver:即我们在springmvc.xml中配置的InternalResourceViewResolver,叫做视图解析器,将逻辑视图解析成物理视图!(需要开发人员添加)
View:即视图,这个有jsp、freemarker、pdf等格式(需要开发人员添加)
工作流程分析
①:用户发送url请求到dispatcherServlet(前端控制器)
②:前端控制器根据url请求处理器映射器来查找handler,可以根据xml配置或注解查找
③:处理器映射器向前端控制器返回Handler!(实际返回的是HandlerExecutionChain,这个类里面包含一个handler和多个处理器拦截器!)
④:因为handler的种类多种多样,我们要给其进行适配才可发挥handler的功能,这样前端控制器这一步就调用处理器适配器(HandlerAdapter)来发挥Hanldler的功能
⑤:适配器调用handler
⑥:handler返回ModelAndView
⑦:适配器将ModelAndView返回给前端控制器
⑧:前端控制器得到逻辑视图,需要有InternalResourceViewResolver即视图解析器来将逻辑视图解析为物理视图!
⑨:返回物理视图给前端控制器
⑩:前端控制器将数据填充进request域中,然后视图渲染!用户就能得到请求的页面了!
结尾
流程可以结合第一篇的测试程序一起看,这个视频教学的后面就是mybatis+SprinMVC的案例实战了,这些我想在学完mybatis再看!