深入理解MVC的生命周期

Posted 附近找友

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入理解MVC的生命周期相关的知识,希望对你有一定的参考价值。



       了解了MVC的生命周期,便于我们学习了理解MVC相关的知识。本文给大家介绍MVC程序服务端对于用户的请求都做了什么处理。


一、请求处理过程(Request)

1:路由(Routing)

        客户端请求第一个环节就是路由,根据URL和注册的路由规则进行匹配,当找到一个匹配的路由后,MVC路由引擎会把改请求交给MvcHandler。如果未找到匹配的路由规则,则返回404错误。

路由注册在MVC启动程序Global. asax中注册。


2:处理组件(MvcHandler)

       路由匹配规则成功后交给该处理组件响应客户端的请求。MvcHandler实现了接口IHttpHandler中的虚方法ProcessRequest来创建请求对应的Controller, 找到对应的控制器后将RequestContext传入Controller。


3:控制器(Controller)

       控制器属于MVC的核心组件,我们可以把它看成视图与模型的桥梁。由Action返回视图和数据。

       在MvcHandler中创建并调用对应的控制器。那对应的控制器是怎么创建并调用到匹配的控制器的呢?我们来了解两个东西:IController和IControllerFactory。在MvcHandler中通过调用内部方法ProcessRequestInit方法,改方法使用输出参数返回IContorller和IControllerFactory,然后执行IController中Execute方法把RrequestContext(请求上下文对象)传进去,最后由IControllerFactory对象调用ReleaseController方法传入IController对象来创建和初始化请求对应的控制器。


4:Action Execution--Action方法

         Controller创建并初始化后开始有核心组件ActionInvoker来判断客户端请求的是哪个方法。在Action方法中我们进行逻辑处理并把数据Model返回给相应视图。


二、响应请求(Response)

1:视图结果(View Result)

       在Action中接受请求数据并进行处理并准备响应请求返回一个View Result类型,如:ViewResult, RedirectToRouteResult, RedirectResult, ContentResult, JsonResult, FileResult, EmptyResult等。


2:视图引擎(View Engine)

        当Action返回数据后,视图引擎就开始工作,有视图引擎来决定需要返回哪个视图。视图引擎继承自接口IViewEngine,并提供了两个实现WebForm和razor。


3:视图(View)

       View视图相当于模板,它把Action传过来的数据绑定到视图中,展现在用户面前。



如果喜欢请关注支持笔者,您的关注是笔者源源不断创作的动力!


以上是关于深入理解MVC的生命周期的主要内容,如果未能解决你的问题,请参考以下文章

Activity生命周期(深入理解)

深入理解android view 生命周期

深入理解Kotlin协程使用Job控制协程的生命周期

深入理解maven及应用:生命周期和插件

如何理解Activity 的生命周期

理解mpvue的生命周期