Java源码分析SpringMVC执行流程


本篇内容介绍了“Java源码分析SpringMVC执行流程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!先看一下SpringMVC执行流程再看源码,有助理解:⽤户发送请求⾄前端控制器DispatcherServlet。DispatcherServlet 收到请求调⽤ HandlerMapping 处理器映射器。处理器映射器找到具体的处理器(可以根据xml配置、注解进⾏查找),⽣成处理器及处理器拦截器(如果有则⽣成)⼀并返回给DispatcherServlet。DispatcherServlet调⽤HandlerAdapter处理器适配器。HandlerAdapter经过适配调⽤具体的处理器(Controller,也叫后端控制器)Controller执⾏完成返回ModelAndView。HandlerAdapter 将 Controller 执⾏结果 ModelAndView 返回给DispatcherServlet。DispatcherServlet将ModelAndView传给ViewReslover视图解析器。ViewReslover解析后返回具体View。DispatcherServlet根据View进⾏渲染视图(即将模型数据填充⾄视图中)。DispatcherServlet 响应⽤户。我们都知道当从用户发起请求到后端是,首先走的就是DispatcherServlet,接着就会调用doService()方法执行业务逻辑,doService()方法也只是一个中转站,实际执行逻辑的是doDispatch()方法,且看源码:doDispatch 方法:下面来看一下其中几个重要的方法:1.getHandler(HttpServletRequest request)方法:该方法是处理当前请求找到合适的HandlerMapping,并返回一个HandlerExecutionChainHandlerExecutionChainHandlerExecutionChain包含了具体的处理器(handler)和拦截器列表。HandlerMapping 默认的实现有org.springframework.web.servlet.handler.BeanNameUrlHandlerMappingorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping2.getHandlerAdapter(Object handler) 根据HandlerExecutionChain中的handler来获取处理器适配器(HandlerAdapter),HandlerA免费云主机域名dapter有两个默认实现类,分别是 org.springframework.web.servlet.mvc.HttpRequestHandlerAdapterorg.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,前者用于没有使用模板引擎的请求,后者用于使用了模板引擎的接口。实际处理请求的是HandlerAdapter的handle方法,如果是没有使用例如JSP等的模板引擎,handle方法就会返回null,如果使用了模板引擎就会返回一个ModelAndView对象。handle方法最终调用的是Controller接口的 handleRequest(HttpServletRequest request, HttpServletResponse response) 方法来处理请求。以SimpleControllerHandlerAdapter#handle方法源码为例:3.processDispatchResult方法用于处理转发结果,该结果要么是一个ModelAndView,要么抛异常。processDispatchResult方法中在正常情况下会调用render方法。4.render方法用来通过名称呈现视图,它也是请求处理的最后一步。DispatcherServlet的render方法是对视图View的封装,最后调用的还是Viewrender方法。resolveViewName方法用于解析视图名称,它会通过视图解析器ViewResolverresolveViewName方法解析视图并返回一个视图View,然后再通过Viewrender方法渲染视图,至于是怎么渲染视图的这里就不介绍了,感兴趣的可以自行查看源码。“Java源码分析SpringMVC执行流程”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云主机网站,小编将为大家输出更多高质量的实用文章!

相关推荐: Vue怎么使用pdfobject实现预览pdf

本篇内容主要讲解“Vue怎么使用pdfobject实现预览pdf”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue怎么使用pdfobject实现预览pdf”吧!pnpm add pdfo免费云主机域名bject这…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/05 09:31
Next 07/05 09:31

相关推荐