昨天注册了CSDN账号,(热烈欢迎一下自己 ,略略略),今天忍不住想写一点东西了,其实也不算写,这篇文章大部分都是在看了系列视屏后的一些总结,个人认为最好的学习方法就是动脑+总结知识点以及问题。以后的文章主要是总结知识点+提出问题,并努力在第二天解决(有种自己给自己挖坑的感觉,哈哈,不过,开心就好),今天主要总结一下SpringMVC工作原理
以下是自己整理的一个图:
图解:
①:前端控制器接受客户端浏览器的请求。
②:前端控制器调用HandlerMapping查找Handler,HandlderMapping返回一个执行链。
③:前端控制器调用HandlerAdapter。
④:HandlerAdapter执行Handler,并返回一个ModelAndView给前端控制器。
⑤:前端控制器调用视图解析器,将ModelAndView中的逻辑视图(加前缀加后缀)解析成真正的视图,并返回到View。
⑥:对得到的View进行视图渲染:将模型数据填充到request域中。
⑦:前端控制器响应请求,将View返回给客户端。
组件:
1.前端控制器 DispatcherServlet
作用:接受客户端请求,并将结果响应给客户端,类似于一个转发器
2.处理器映射器 HandlerMapping
作用:根据请求的URL查找Handler
3.处理器适配器 HandlerAdapter
作用:按照 HandlerAdapter 要求的规则去执行Handler
4.视图解析器 ViewResolver
作用: 将逻辑视图名解析成真正的视图名,这个时候我觉得有必要举个例子
ModelAndView mav = new ModelAndView("bussiness_login");
5.视图View
作用:View是一个接口,实现类支持不同的类型(jsp、pdf等)
问题:
1.前端控制器究竟为什么能调用处理器适配器、处理器映射器、以及视图解析器?
2.什么是处理器适配器、处理器映射器?(May_mm表示很迷惑,明天希望更深入一步,不求多,进步一点点就好)
3.跟踪一下View接口的源码,看看它究竟是个什么东东?(使用跟踪二字仿佛自己是个大手子,哈哈,写完自己都笑了)
4.处理器映射器返回的是一个链,究竟是什么?(这个时候是不是又得跟踪源码了,写着写着我又笑了)
附加:
如果有多余时间的话,写一下需要的配置文件,想想明天最早晚上18:30后才能着手解决上面的问题,我突然意识到写附加任务简直是个笑话,哈哈,不管怎样,先写着吧,万一完成了呢?
个人说明:
本文章只是我学习后的一点总结,文章中难免会有一些问题,若各位大牛看到了,请不要吝啬赐教,最好能在评论中很严厉、深刻的指出来,万一这篇文章有幸被人看到并参考,误导了人家那真是我的罪过,阿弥陀佛,么么哒,慎点呀施主。
May_mm : 2017/9/2 22:55