欢迎您的访问
专注于Java技术系列文章的Java技术分享网站
关注我们

—— 加入社群 ——
「十大城市」工作内推
「微信/QQ」技术讨论
「面试真题」随时领取
公众号名称:搜云库技术团队  公众号ID:souyunku
关注公众号后发送 口令 获取关闭弹窗地址
公众号每天中午 12:20 为你推送一篇技术文章

Spring MVC 教程(十四)Spring MVC的运行流程

号外:限时领取:2020,全网最新、最全的技术知识体系

Spring MVC的运行流程图:

1、首先看能不能发送请求到Spring MVC的DispatcherServlet的url-pattern
2、如果能发送请求,就看在Spring MVC中是否存在对应的映射
不存在映射:就看是否配置了,如果没有配置就在控制台打印错误日志:No mapping found for HTTP request with URI [/xx/xx] in DispatcherServlet,同时转向404页面;如果配置了就转向目标资源
存在映射:由HandlerMapping获取HandlerExectionChain对象,获取HandlerAdaper对象,调用拦截器的Prehandle方法,调用目标handler的目标方法得到ModelAndView对象
3、调用拦截器的postHandle方法
存在异常:由异常解析器HandleExceptionResolver组件处理异常,得到新的ModelAndView对象,由视图解析器ViewReslover组件根据ModelAndView对象得到实际的view渲染视图
不存在异常:由视图解析器ViewReslover组件根据ModelAndView对象得到实际的view渲染视图
4、 调用拦截器的afterCompletion方法

72_1.png

说明:

  • 用户请求首先发送到前端控制器DispatcherServlet,DispatcherServlet根据请求的信息来决定使用哪个页面控制器Controller(也就是我们通常编写的Controller)来处理该请求。找到控制器之后,DispatcherServlet将请求委托给控制器去处理。
  • 接下来页面控制器开始处理用户请求,页面控制器会根据请求信息进行处理,调用业务层等等,处理完成之后,会把结果封装成一个ModelAndView返回给DispatcherServlet。
  • 前端控制器DispatcherServlet接到页面控制器的返回结果后,根据返回的视图名选择相应的视图模板(ViewReslover),并根据返回的数据进行渲染。
  • 最后前端控制器DispatcherServlet将结果返回给用户。

https://www.cnblogs.com/leeSmall/category/1093236.html

文章永久链接:https://tech.souyunku.com/?p=13901

赞(66) 打赏

版权归原创作者所有,任何形式转载请联系作者;搜云库技术团队 » Spring MVC 教程(十四)Spring MVC的运行流程
本站:免责声明!

评论 抢沙发

一个专注于Java技术系列文章的技术分享网站

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏