MVC开发及运行流程

MVC开发流程:

1)新建一个MVC项目

2)新建Controller

3)创建Action

4)根据Action创建View

5)在Action获取数据并生产ActionResult传递给View

6)View是显示数据的模板

7)URL请求-》Controller.Action处理--》View响应

 

默认项目模板中的内容

1.App_Data:用来 存储数据库文件,XML文件或者应用程序需要的一些其他数据

2.Content:用来存放应用程序中需要乃至的一些静态资源文件。如图片和CSS样式文件。

3.Controllers:用于存放所有的控制器类,控制器负责处理请求。并决定哪一个Action执行,充当一个协调者的角色。

4.Models:用于存放应用程序的核心类、数据持久化类,或者视图模型。

5.Scripts:用于存放项目中用到的JavaScript文件,默认情况下,系统自动添加了一系列的JS文件,包含jquery和jquery验证等js。

6.Views:包含了许多用于用户界面展示的模板,这些模板都使用Rasor视图来展示的,子目录对应着控制器相关的视图。

7.Global.asax:存放在项目根目录下,代码中包含应用程序第一次启动时的初始人操作,诸如路由注册。

8.Web.config:同样存在于项目根目录,包含ASP.NET MVC正常运行所需要的配置信息。

约定:

1)Controller放到controllers文件夹中,并且命名方式以Controller结尾

2)每个Controller都对应View中的一个文件夹,文件夹的名称跟Controller名相同。

3)控制器必须是非静态类,并且要实现IController接口

4)Controller类型可以放到其他项目中。

MVC整体运行流程

1)当我们在浏览器端输入一个URL时,客户端会发送一个基于HTTP的Web请求给服务器,在请求到达Web服务器的那一刻,Web服务器Windows内核中的HTTP.SYS组件就会捕获到请求。当HTTP.Sys组件分析到这个是一个需要交给IIS服务器处理的http请求时,http.sys组件就会将Request请求交给IIS服务器来处理。

HTTP.SYS是一个位于Windows Server和Windows XP2中操作系统核心组件(内核模式中),能够让任何应用程序通过它提供的接口以HTTP进行信息通信。

2)如果请求有缓存内容就直接响应。

http.sys组件有一个重要作用就在于它有一个缓存区,会将近期处理的响应结果放入缓存区之中,如果再次请求这个内容,就会从缓存区中取得内容并进行响应,提高了响应速度。而且,静态的内容现在被缓存于内核模式下,使服务响应速度更快。

3)IIS服务器会分析Request请求的context-type类型,然后从处理程序映射表中去匹配,当在处理程序映射表中能够匹配Request请求的context-type类型时,IIS服务器就将请求交给映射表中的所对应的程序处理。当IIS发现在处理程序映射表中没有能匹配的时候,就直接去下载Request请求所对应路径 的文件。

4)对于动态资源的处理,IIS首先会通过一个工作进程去加载具体的处理组件dll。以IIS6.0为例,如果IIS判断它自己无法处理asp.net的请求,就会W3WP.exe所维护的工作进程来加载aspnet_isapi.dll。

5)如果Web应用程序是第一次加载,那么首先会由aspnet_isapi.dll加载.NET运行时库。IIS工作进程里有一个应用程序池,其中可以承载多个应用程序域AppDomain。

6)HTTP.SYS接收请求,通过应用程序域工厂AppDomainFactory创建应用程序域AppDomain。

7)一个IsapiRuntime被加载,并创建一个IsapiWorkerRequest对象封闭当前的HTTP请求,并把该IsapiWorkerRequest对象传递给ASP.NET的HttpRuntime运行时,此时,HTTP请求开始进入ASP.NET请求管道。HttpRuntime是ASP.NET请求管道的入口。当请求进来时,首先进入HttpRuntime,由HttpRuntime来决定如何处理请求。

8)HttpRuntime维护着一个HttpApplication池,当有HTTP请求过来时就从池中选取可用的HttpApplication处理请求。

9)HttpRuntime根据IsapiWorkerRequest对象创建HttpContext对象。

10)HttpApplicationFactory创建新的或者从HttpApplication池获取现有的、可用的HttpApplication对象。

11)HttpApplication调用ProcessRequest方法,内部执行19个管道事件。MVC的19个管道事件如下

 

 

 

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: SpringMVC执行流程大致可以分为以下几个步骤: 1. 客户端发送请求至DispatcherServlet。 2. DispatcherServlet收到请求后,根据请求URL找到对应的Controller。 3. Controller接收请求后,调用Service层处理请求。 4. Service层处理请求后,将数据返回给Controller。 5. Controller将处理结果返回给DispatcherServlet。 6. DispatcherServlet将处理结果返回给客户端。 在执行流程中,DispatcherServlet是核心控制器,负责协调各个组件的工作,并根据请求URL找到对应的Controller。Controller负责接收请求并调用Service层处理请求。Service层处理请求并将数据返回给Controller。最终,Controller将处理结果返回给DispatcherServlet,DispatcherServlet将处理结果返回给客户端。 ### 回答2: Spring MVC是一种基于Java的Web开发框架,它提供了一套机制来帮助开发者构建灵活、模块化和可扩展的Web应用程序。 Spring MVC的执行流程如下: 1. 客户端发送HTTP请求到DispatcherServlet。DispatcherServlet是Spring MVC的核心控制器,它拦截所有的请求,然后根据请求的URL将请求转发给相应的控制器。 2. DispatcherServlet根据请求的URL查找处理该请求的控制器。在Spring MVC中,控制器是一个POJO类,使用@Controller注解标识。 3. 控制器处理请求并返回一个ModelAndView对象。在控制器中,可以通过注解@RequestMapping来映射请求URL到相应的方法。 4. DispatcherServlet根据控制器返回的ModelAndView对象选择相应的ViewResolver来解析视图。ViewResolver负责将逻辑视图名解析为具体的视图对象。视图通常是JSP、Thymeleaf 或者Freemarker等模板引擎。 5. ViewResolver返回视图对象给DispatcherServlet。 6. DispatcherServlet将Model对象传递给视图对象。在控制器中,可以通过注解@ModelAttribute将模型对象添加到请求域中。 7. 视图对象渲染响应结果并返回给DispatcherServlet。 8. DispatcherServlet将视图对象的渲染结果返回给客户端。 以上就是Spring MVC的执行流程。通过这一流程,我们可以灵活地处理Web请求并生成响应结果。Spring MVC提供了一套简洁而强大的机制,使得我们开发Web应用更加容易和高效。 ### 回答3: Spring MVC是基于MVC设计模式的一种轻量级的Web框架。其执行流程如下: 1. 客户端发送一个HTTP请求到服务器,并由前端控制器DispatcherServlet拦截请求。 2. DispatcherServlet是Spring MVC框架的核心组件,负责调度和协调请求的处理。它根据配置文件找到对应的处理器映射器HandlerMapping。 3. HandlerMapping将根据请求的URL找到对应的处理器Handler。 4. 执行处理器Handler,该处理器是一个有用户自定义代码编写的控制器Controller。处理器会根据业务逻辑进行处理,并返回一个ModelAndView对象。 5. ModelAndView对象包含了视图名称和模型数据。视图名称会被视图解析器ViewResolver解析为具体的视图。 6. 视图渲染器ViewResolver会根据视图名称找到对应的视图模板,将模型数据填充到视图模板中。 7. 最终,视图会被渲染成HTML响应返回给客户端。 在整个执行流程中,Spring MVC提供了许多扩展点,如拦截器Interceptor和处理器适配器HandlerAdapter等,开发者可以根据需求来进行配置和自定义。同时,Spring MVC还提供了各种注解和标签来简化开发,如@Controller注解用于标识控制器,@RequestMapping注解用于处理请求映射,以及<form:form>标签用于生成表单等。 总而言之,Spring MVC的执行流程清晰简洁,通过分层架构和配置文件,将请求的处理过程分解成各个组件的责任和协作,使得开发者可以更加专注于业务逻辑的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蚂蚁_CrkRes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值