mvc的概述

合集下载

Qt5MVC模式(一)

Qt5MVC模式(一)

Qt5MVC模式(⼀)Qt5MVC模式(⼀):概述上By Xchen 20160627MVC设计模式起源于smalltalk的⼀种与⽤户界⾯设计相关的设计模式。

作⽤:有效的分离数据和⽤户界⾯。

组成:模型model(表⽰数据)、视图view(表⽰⽤户界⾯)、控制controller(定义⽤户在界⾯上的操作)。

interView框架Qt的MVC区别:将视图与控制结合在⼀起,同时添加了代理delegate能够⾃定义数据条⽬item的显⽰与编辑⽅式。

组成:模型model(表⽰数据)、视图view(表⽰⽤户界⾯)、代理delegate(⾃定义数据条⽬item的显⽰与编辑⽅式)。

模型与视图结构:模型与数据通信,并提供接⼝视图从模型中获取数据条⽬索引代理绘制数据条⽬通信⽅式:信号&槽⼯作过程:数据改变时,模型发出信号通知视图;⽤户对界⾯操作时,视图发出信号;代理发出信号告知模型和视图编辑器⽬前的状态;模型model(表⽰数据)抽象基类QAbstractItemModel列表的抽象基类QAbstractListModel、表格的抽象基类QAbstractTableModelQDirModel类是⽂件与⽬录的存储模型QStandardItemModel类QStringListModel类视图view(表⽰⽤户界⾯)抽象基类QAbstractItemViewQListView—QListWidget\QUndoViewQTableView—QTableWidgetQTreeView—QTreeWidgetQColumnViewQHeaderView实际上:QListWidget、QTableWidget、QTreeWidget已经包含数据,是模型与视图集成的类代理delegate(⾃定义数据条⽬item的显⽰与编辑⽅式)抽象基类QAbstractItemDelegateQItemDelegate/QStyleItemDelegate类QItemDelegate 由类QSqlRelationDelegate继承实例⼀:⽂件⽬录浏览器截图:创建过程:1. 声明⼀个QDirModel对象model;2. 分别声明三个视图对象QTreeView、QTableView、QListView;3. 设置视图对象的模型为setModel(model);4. 设置视图的选择模式setSelectionMode(QAbstractItemView::MultiSelection);5. 信号槽的连接6. 分隔窗体的设置头⽂件:#include <QApplication>#include <QAbstractItemModel>#include <QAbstractItemView>#include <QItemSelectionModel>#include <QDirModel>#include <QTreeView>#include <QListView>#include <QTableView>#include <QSplitter>QItemSelectionModel类:⽤来设置模型的选择模式的。

最全最经典spring_mvc教程

最全最经典spring_mvc教程

spring mvc学习教程(一)-入门实例引言1.MVC:Model-View-Control框架性质的C层要完成的主要工作:封装web请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给用户。

2.简要概述springmvcSpring C 层框架的核心是DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即使用了一种被称为Front Controller 的模式(后面对此模式有简要说明)。

Spring 的C 层框架使用了后端控制器来、映射处理器和视图解析器来共同完成C 层框架的主要工作。

并且spring 的C 层框架还真正地把业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象。

一、入门实例1. 搭建环境在spring的官方API文档中,给出所有包的作用概述,现列举常用的包及相关作用:org.springframework.aop-3.0.5.RELEASE.jar:与Aop编程相关的包org.springframework.beans-3.0.5.RELEASE.jar:提供了简捷操作bean的接口org.springframework.context-3.0.5.RELEASE.jar:构建在beans包基础上,用来处理资源文件及国际化。

org.springframework.core-3.0.5.RELEASE.jar:spring核心包org.springframework.web-3.0.5.RELEASE.jar:web核心包,提供了web层接口org.springframework.web.servlet-3.0.5.RELEASE.jar:web 层的一个具体实包,DispatcherServlet也位于此包中。

后文全部在spring3.0 版本中进行,为了方便,建议在搭建环境中导入spring3.0 的所有jar 包(所有jar 包位于dist 目录下)。

MVC软件架构模式介绍

MVC软件架构模式介绍

MVC软件架构模式介绍⼀、MVC设计模式介绍1.1概述:MVC开始是存在于桌⾯程序中的,M是指业务模型(包括业务逻辑和数据),V是指,C则是控制器,使⽤C将M和V的实现代码分离,并且使⽤C来确保M和V的同步,⼀旦M改变,V应该同步更新。

1.2详述(MVC各个层的具体功能):Model(模型)表⽰企业数据和业务规则。

是应⽤程序中⽤于处理应⽤程序数据逻辑的部分。

通常模型对象负责在数据库中存取数据。

在MVC的三个部件中,模型拥有最多的处理任务。

例如它可能⽤像EJBs和ColdFusion Components、JDBC这样的构件对象来处理数据库,被模型返回的数据是中⽴的,就是说模型与数据格式⽆关,这样⼀个模型能为多个视图提供数据,由于应⽤于模型的代码只需写⼀次就可以被多个视图重⽤,所以减少了代码的重复性。

在M层,⼜将程序具体分成业务逻辑⼦层和持久化层,持久化层负责数据操作,业务逻辑⼦层负责调⽤相应的组件(如持久化层组件、其他组件、辅助类等)来组合成⼀定的逻辑,得到⽤户请求的数据信息。

View(视图)是⽤户看到并与之交互的界⾯。

对⽼式的Web应⽤程序来说,视图就是由HTML元素组成的界⾯,在新式的Web应⽤程序中,HTML依旧在视图中扮演着重要的⾓⾊,但⼀些新的技术已层出不穷,它们包括和像,XML/,等⼀些标识语⾔和. MVC好处是它能为应⽤程序处理很多不同的。

在视图中其实没有真正的处理发⽣,不管这些数据是联机存储的还是⼀个雇员列表,作为视图来讲,它只是作为⼀种输出数据并允许⽤户操纵的⽅式。

从⽽使同⼀个程序可以使⽤不同的表现形式。

⽐如⼀批统计数据可以分别⽤柱状图、饼图来表⽰。

Controller(控制器)接受⽤户的输⼊并调⽤模型和视图去完成⽤户的需求,C层的主要功能在于控制、组合与调⽤。

所以当单击Web页⾯中的超链接和发送时,控制器本⾝不输出任何东西和做任何处理。

它只是接收请求并决定调⽤哪个模型构件(即相应的业务逻辑组件)去处理请求,当然执⾏某些业务逻辑组件的过程中有可能会涉及到数据库操作,但是⽆论是否涉及到数据库操作,处理⽤户请求以获得请求结果的过程都是在Model层完成的,Model层获取result数据之后,再确定⽤哪个视图来显⽰返回的数据。

javaEE常用开源框架的认识及概述

javaEE常用开源框架的认识及概述

javaEE常⽤开源框架的认识及概述对javaEE框架的认识⼀、什么是框架通俗的理解,框架是我们软件开发中的⼀套解决⽅案,不同的框架解决的问题是不同的,⽐如MyBatis框架解决的是持久层的问题,springMVC框架解决的是表现层的问题。

需要注意的是,框架它本⾝⾃⼰是不能实现业务上的功能,它只能对,⽐如说持久层、表现层、结构合理性等等,提供⼀些解决⽅案,⽽真正的业务层部分,还需要程序员⾃⼰来提供。

所以说,框架可以理解为⼀个半成品,我们选⽤这个半成品,然后加上业务需求(即项⽬中的需求)来最终实现整个的功能。

⽽我们使⽤框架的⽬的其实也很简单,就是为了提⾼开发的效率,⽽不⽤关⼼⼀些繁琐的、复杂的底层代码实现,从⽽把更多的精⼒⽤在需求的实现上。

⼆、框架能帮我们解决哪些问题要明⽩框架能解决哪些问题,⾸先要知道三层架构。

三层架构分为三层:表现层:是⽤于展⽰数据的;业务层:是处理业务需求的;持久层:是和数据库交互的。

从这张图可看出上⾯列出的三个框架和三层架构所处的位置。

可以看出MyBatis框架是⼀个持久层框架,它是和数据库交互的;⽽下⾯的Spring框架有点特殊,它不属于任何⼀层;SpringMVC框架是处于表现层的,它是⼀个表现层框架。

从这张图可⼤致得出,不同的框架是各司其职的,它们解决某⼀层或者某⼀类的事情。

三、对⼀些主流框架的认识由于以下具体的框架都没有学过,所以只能说⼀说,我对这些框架的⼤体认识,可能对于某些框架没⽤使⽤过和对⽐过很难对它的优势有深刻的认识,只能在后续的学习中,深⼊理解。

1、Struts2框架Struts2框架处于三层架构的表现层,可以⽤来替代掉Servlet技术,来处理前端访问服务器的请求(如表单、页⾯提交过来的请求),所以Struts2是属于⼀个前端处理的框架。

下图显⽰了Struts2框架在三层架构中的位置:对于web⽇常的⼯作,⽐如获取请求参数、转发、重定向、校验参数等等,使⽤Servlet技术基本都可以完成。

MVC模式在嵌入式调试工具开发中的研究与实现

MVC模式在嵌入式调试工具开发中的研究与实现
关 键 词 : 型 一 视 图一 控 制 器模 式 ( 模 MVC) ;Ecis l e;嵌 入 式 ;调 试 ;模 式 p 中 图分 类号 :T 3 l P 1 文献标识码 : A 文 章 编 号 : 6 4 6 3 ( 01 0 — 0 5 0 1 7 — 2 6 2 0) 4 0 8 — 3
R e e r h a m p e e a i n fM V C te n i m be de e s a c nd i l m nt to o pa t r n e d d d bug t o e l p e t o ld veo m n
YAN — u , MENG o Zhig i Ca
t e a plc t n o mbe de e ug i g t o i h ba e n Ecl e pl —n t c n o y,i dic s d ho t mpl h p i ai fe o d d d b g n o lwh c s d o i ug i e h olg ps t s us e w o i eme tt n he M VC a c tc u e r hi t r pat r . e a t a d veo m e t h ws ta t r u t e M VC pat r ce ry s paats o t t e te Th c u l e l p n s o h t h o gh h n te n la l e r e u he
( Ha n e  ̄ o eh o g , h n4 0 7 ,hn ) Wu nU w mi fTc nl y Wu a 3 0 0 C ia o
Ab ta t MVC( d lViw— o tolr atr stemotcmmo l sd d v lp n d l ns s m e eo me t hs sr c: Mo e— e C nrl )p t ni h s o e e nyu e e eo me tmo e y t d v lp n. i i e T

django框架和工作流引擎的基本原理和应用

django框架和工作流引擎的基本原理和应用

django框架和工作流引擎的基本原理和应用Django 框架和工作流引擎是两个不同领域的工具,但它们可以在Web 开发中结合使用,以实现复杂的业务流程。

下面是Django 框架和工作流引擎的基本原理和应用的概述:Django 框架:基本原理:1.MVC 架构:Django 遵循MVC(Model-View-Controller)架构,将应用程序划分为数据模型(Model)、用户界面(View)和控制器(Controller)三个组件。

2.ORM:Django 提供了强大的对象关系映射(ORM)工具,允许开发者使用Python 代码而非SQL 查询语句来进行数据库操作。

3.模板系统:Django 使用模板系统来渲染用户界面,使开发者能够将业务逻辑和界面设计分离。

应用:1.Web 开发:Django 是一个用于构建Web 应用程序的高级框架,支持快速开发和可维护性。

2.数据库操作:Django 的ORM 简化了数据库交互,使得开发者能够更轻松地进行数据库操作。

3.用户认证和权限管理:Django 提供了内建的用户认证系统和权限管理系统,方便处理用户身份验证和授权问题。

工作流引擎:基本原理:1.状态和转换:工作流引擎通过定义状态和状态之间的转换来描述业务流程。

2.任务:工作流包含一系列任务或活动,每个任务可能对应业务中的某个步骤。

3.引擎:工作流引擎是核心组件,负责管理流程的执行,处理状态的变更和任务的触发。

4.通知和审批:工作流引擎通常能够处理通知、审批和条件触发等需求。

应用:1.业务流程管理:工作流引擎用于管理和自动化复杂的业务流程,如审批流程、订单流程等。

2.状态机:工作流引擎可以被看作状态机,用于跟踪对象的状态变化。

3.任务协调:工作流引擎有助于协调异步任务的执行,确保按照定义的流程进行。

Django 框架与工作流引擎的结合应用:1.业务流程管理:Django 框架可以通过工作流引擎来管理复杂的业务流程,确保按照定义的流程执行任务。

mvc 处理requestbody 参数

mvc 处理requestbody 参数

文章标题:深度解析MVC中处理RequestBody参数的原理与技巧在MVC(Model-View-Controller)架构中,处理RequestBody参数是Web开发中非常重要的一环。

在本文中,我将从深度和广度两个角度,全面评估并探讨MVC中处理RequestBody参数的原理和技巧。

1. MVC框架概述MVC是一种软件架构模式,它将应用程序分成三个核心部分:模型(Model)、视图(View)和控制器(Controller)。

在MVC中,Controller负责处理请求和响应,Model负责数据处理和业务逻辑,View负责展示数据和用户界面。

而处理RequestBody参数则是Controller负责的重要任务之一。

2. RequestBody参数的含义在Web开发中,RequestBody参数通常指的是通过HTTP请求体传递的数据,包括JSON、XML等格式的数据。

处理这些参数对于实现前后端数据交互至关重要,因此需要深入了解RequestBody参数的处理原理和技巧。

3. MVC中处理RequestBody参数的原理在MVC框架中,处理RequestBody参数的原理可以概括为以下几个步骤:接收请求、解析参数、处理参数和返回响应。

具体而言,当客户端发送请求时,Controller接收到请求,然后通过RequestBody参数解析器将请求体中的参数解析成相应的对象,再将对象传递给处理方法进行处理,并最终返回响应给客户端。

4. MVC中处理RequestBody参数的技巧针对处理RequestBody参数,在实际开发中,我们需要掌握一些技巧来提高效率和可维护性。

合理设计请求体的数据结构,以便于解析和处理;充分利用RequestBody参数的校验和处理功能,确保数据的安全性和有效性;结合框架提供的各种注解和工具类,简化处理参数的逻辑,提高代码质量和可读性。

5. 个人观点和理解从个人角度看,处理RequestBody参数是MVC开发中的一项基本技能,掌握其原理和技巧对于提高代码质量和开发效率至关重要。

三层架构与MVC的区别

三层架构与MVC的区别

三层架构与MVC的区别我们平时总是将混为⼀谈,殊不知它俩并不是⼀个概念。

下⾯我来为⼤家揭晓我所知道的⼀些真相。

⾸先,它俩根本不是⼀个概念。

三层架构是⼀个分层式的软件体系架构设计,它可适⽤于任何⼀个项⽬。

MVC是⼀个设计模式,它是根据项⽬的具体需求来决定是否适⽤于该项⽬。

那么架构跟设计模式有什么区别呢? 我们从接⼿⼀个项⽬开始,⾸先,我们需要进⾏架构设计,⼀般我们采⽤的就是分层式的架构设计,即我们的三层架构。

然后,在确定了架构以后,我们再根据项⽬的具体需求去考虑是否需要应⽤⼀些设计模式,⽐如是否应⽤我们的MVC模式,抽象⼯⼚模式等等。

(在这⾥我们看出,MVC与三层架构不是⼀个等级的,⽽与抽象⼯⼚等设计模式才是⼀路的) 最后,确定了模式以后,就是我们的⼀些具体的实现了。

(当然⼀个项⽬不仅仅考虑这些问题,我只是为了说明两者的区别,将其他问题已省略)其次,它俩划分的层次不同。

三层架构将整个项⽬划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。

MVC 即Model(模型),View(视图),Controller(控制)。

下⾯看⼀下他俩的区别与联系: 通过这个图我们可以知道,我们平常所说的V是UI,C是BLL,M是DAL的观点是错误的。

⽽我们通常所见到的MVC⼀般也都是在应⽤三层架构的基础上,即将Model层再进⾏分层。

⽽如果Model不再进⾏划分的话,那么使⽤MVC的意义也就不⼤了。

然后,它俩的⽬的着重点不同。

三层架构的⽬的着重点是“⾼内聚,低耦合”,即解耦。

MVC的⽬的则是实现Web系统的职能分⼯,即职责划分。

其实职责划分也是解耦,但是三层侧重的是整体的⼀个解耦,⽽MVC侧重的是web系统的解耦,即侧重jsp和Servlet的⼀个解耦。

最后,为何我们会将其混为⼀谈? 既然两者有这么多的不同,我们为什么还总是将其混淆呢,下⾯我列举了⼏个我们常常将其混为⼀谈的⼏个原因: 1.⼆者都是“三层”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MVC 概述原文链接:/learn/mvc/1. MVC 概览模型-视图-控制器(Model-View-Contoller, MVC)架构模式将应用程序分为了三个主要的组件:模型,视图和控制器。

MVC框架为 Web表单模式提供了另一种开发模式――基于MVC的Web应用程序。

MVC框架是一个轻量的、高度可测试的表现层框架(与基于表单的Web应用程序相同),它继承在了现有的功能之中,例如模板页和基于Membership的验证。

MVC框架定义在了System.Web.Mvc命名空间中,并且是必不可少的,由部分System.Web命名空间支持。

MVC是一个许多开发者都熟悉的、标准的设计模式。

一些类型的Web应用程序将从MVC 框架中受益。

其他一些应用程序将会继续使用基于Web表单和Postback的传统应用程序模式。

还有一些Web应用程序将会将这两种方法结合;这两种方式互不排斥。

MVC框架包含下面的组件:图1:调用一个需要参数值的控制器动作模型:模型对象是应用程序中实现了数据领域(data domain)逻辑的部分。

通常,模型对象从数据库中获取模型状态,并且将模型状态保存至数据库。

举个例子,一个Product 对象可能从数据库中获取信息,对它进行操作,然后将更新后的信息写回SQL Server中的Products表。

在小型的应用程序中,模型通常是一个概念上的划分而非一个实际的划分。

举个例子,如果应用程序只是读取DataSet然后发送给视图,应用程序没有一个实际的模型层和相关的类。

在这种情况下,DataSet就承担了模型对象的角色。

视图:视图是应用程序中显示用户界面(UI)的组件。

典型地,这个UI基于模型数据创建。

举个例子,Products表的编辑视图基于Products对象的状态显示了文本框、下拉列表,以及复选框。

控制器:控制器是处理用户交互的组件,它与模型协作,并且最终选择一个要呈现的视图来显示用户界面。

在MVC应用程序中,视图仅仅显示信息;控制器处理并且响应用户输入和交互。

举个例子,控制器处理查询字符串值,并且将这些值传递给模型,模型再使用这些参数查询数据库。

MVC模型帮助创建这样的应用程序,它能够将应用程序的各个方面区分开(输入逻辑、业务逻辑,以及UI逻辑),同时提供这些元素之间的松耦合。

这个模式指定了每一种逻辑应该位于应用程序的哪个位置。

UI逻辑属于视图。

输入逻辑属于控制器。

业务逻辑属于模型。

这种分隔有助于你在创建应用程序时管理复杂性,因为它能够让你在一次将精力集中于实现的某一方面。

举个例子,你可以集中在视图,而不依赖于业务逻辑。

除了管理复杂性以外,测试应用程序时MVC模式比基于Web表单的应用程序要简单得多。

举个例子,在一个基于Web表单的应用程序中,一个类既用于显示输出,也用于响应用户输入。

为基于Web表单的应用程序编写自动测试程序是很复杂的,因为要测试每个页面,你必须初始化页面类,它的所有子控件,以及应用程序中其他有所依赖的类。

因为为了运行页面初始化了这么多的类,所以编写专用于应用程序单独部分的测试就变得很困难了。

测试基于Web表单的应用程序因此比测试MVC应用程序更加难以实施。

除此以外,基于Web表单的应用程序需要一个Web服务器。

MVC框架将组件进行了解耦,并且大量使用了接口,使得测试独立于框架其他部分的组件成为可能。

MVC应用程序三个主要组件之间的松耦合也提升了并行开发的程度。

举个例子,一个开发者可以开发视图,第二个开发者可以开发控制器逻辑,而第三个开发者可以将精力集中于模型中的业务逻辑。

1.1 决定如何创建MVC应用程序你必须认真考虑是使用 MVC框架实现Web应用程序,还是使用 Web 表单模型来实现Web应用程序。

MVC框架并没有取代Web表单模型;你可以选择使用MVC框架(如果你已经有基于Web表单的应用程序,它们可以继续像往常一样工作)。

对于一个特定的Web站点,在你决定使用MVC框架或者Web窗体模型之前,权衡一下每一种方式的优势。

1.1.1 基于MVC的Web应用程序的优势 MVC框架提供了下面的优点:∙通过将应用程序分为了模型、视图和控制器,它在管理复杂性方面更加的简单。

∙它不适用视图状态或者基于服务器的表单。

对于那些想要完全控制应用程序行为的开发者来说,MVC框架是很理想的。

∙通过一个控制器,它使用了Front Controller模式来处理对Web应用程序的请求。

这允许你设计出一种可以支持丰富的路由结构的应用程序。

关于Front Controller的更多信息,可以查看MSDN网站。

∙它为测试驱动开发(test-driven development, TDD)提供了更好的支持。

∙对于那些由大型开发者和设计者所支持的Web应用程序来说,它运作得很好,能够对应用程序的行为提供更高层次的控制。

1.1.2 基于Web窗体的Web应用程序的优势基于Web窗体的框架提供了下面的优势:∙它支持在HTTP上保存状态的事件模型,这有益于line-of-business的Web应用程序开发。

基于Web窗体的应用程序提供了大量的事件,它们被数以百计的服务器控件所支持。

∙它使用了一个Page Controller模式来为单个页面添加功能。

关于Page Controller的更多信息,可以参考MSDN网站。

∙它使用了视图状态或者基于服务器的表单,这使得管理状态信息更加容易。

∙对于那些想要利用大量的用于快速应用程序开发组件的小型Web开发者和设计者团队来说,它工作得很好。

∙总的来说,对于应用程序开发来说,它更加的简单,因为组件(Page类,控件等)已经紧密地集成了,并且通常比MVC需要编写更少的代码。

1.2 MVC框架的功能 MVC框架提供了下面的功能:∙应用程序任务的分离(输入逻辑、业务逻辑和用户界面逻辑),可测试性,以及默认的测试驱动开发。

MVC框架中的所有核心契约都是基于接口的,并且可以使用mock对象进行测试,mock对象是模拟的对象,它们可以模仿应用程序中实际对象的行为。

你可以对应用程序进行单元测试,而不需要在进程中运行控制器,这使得单元测试更快速也更灵活。

∙它是一个可扩展和可插入的框架。

MVC框架的组件设计为可以很容易地替换或者定制。

你可以嵌入你自己的视图引擎、URL路由策略、动作方法参数序列化,以及其他组件。

MVC框架也支持使用依赖注入(Dependency Injection,DI)和控件倒置(Inversion of Control,IOC)容器模型。

DI允许你将对象注入到类中,而不是基于类来创建对象本身。

IOC制定了如果一个对象需要另一个对象,第一个对象应该由外部源,例如配置文件,获得第二个对象。

这使得测试更加容易。

∙一个强大的URL映射组件,允许你创建拥有着易于理解和便于搜索的URL 的应用程序。

URL并不需要包含文件名扩展,并且设计为有利于搜索引擎优化(SEO)和表现状态传输(representational state transfer)的URL命名模式。

∙支持在现有的页面(.aspx文件)、用户控件(.ascx文件)和模板页(.master文件)文件中使用标记来作为视图模板。

你可以与 MVC框架一起使用现有的功能,例如嵌套模板页,in-line表达式(<%%>),声明式服务器控件、模板、数据绑定、本地化等等。

∙支持现有的功能。

MVC允许你使用例如表单验证和Windows验证、URL授权、成员资格和角色、输出和数据缓存、会话和档案状态管理、健康监视器、配置系统和Provider架构这些的功能。

2. 理解MVC应用程序执行过程对基于 MVC的Web应用程序发出的请求首先通过UrlRoutingModule对象,它是一个Http模块。

这个模块对请求进行解析,并且执行路由选择。

UrlRoutingModule对象选择与当前请求所匹配的第一个路由对象(路由对象十一哥实现了RouteBase的类,典型地是是一个Route类的实例)。

如果没有路由匹配,UrlRoutingModule对象什么也不做,并且让请求回退到通常的或者IIS请求处理。

从所选择的Route对象中,UrlRoutingModule对象获取与Route对象相关的IRouteHandler对象。

典型地,在一个MVC应用程序中,这是一个MvcRouteHandler的实例。

IRouteHandler实例创建了一个IHttpHandler对象,并且向它传递IHttpContext对象。

默认情况下,MVC的IHttpHandler实例是一个MvcHandler对象。

MvcHandler对象然后选择控制器,该控制器最终处理请求。

NOTE:当 MVC应用程序运行在IIS7.0中时,MVC项目对文件的扩展名没有要求。

然而,在IIS6.0中,handler要求你将.mvc文件名后缀映射到 ISAPI DLL。

模块和处理器(handler)是 MVC框架的入口点。

它们执行下面的动作:∙在MVC Web应用程序中选择合适的控制器。

∙获取一个特定的控制器实例。

∙调用控制器的Execute方法。

3. 理解模型、视图和控制器这篇教程将为你提供 MVC模型、视图、控制器的高层次概览。

换言之,它解释了 MVC中的“M”、“V”和“C”。

在读完本教程之后,你应该能够理解 MVC应用程序中的各个不同部分是如何一起工作的。

你也应该能够理解 MVC应用程序与 Web窗体应用程序和动态服务器页面应用程序在构架上有何不同。

3.1 范例 MVC应用程序Visual Studio用于创建 MVC Web应用程序的默认模板包括了一个极其简单的范例应用程序,可以使用它来理解 MVC应用程序的各个部分。

我们将会在这篇教程中利用这个简单的应用程序。

你可以通过启动Visual Studio2008,并且在菜单中选择“File(文件)”、“New Project (新建项目)”来使用MVC模板创建一个新的 MVC应用程序(如图1)。

在“新建项目”对话框,在项目类型下选择你喜欢的编程语言(Visual Basic或者C#),并且在模板下选择 MVC Web应用程序。

点击“确定”按钮。

图1 - 新建项目对话框当你创建一个新的 MVC应用程序时,将会出现“创建单元测试项目(Create Unit Test Project)”对话框(如图2)。

这个对话框允许你在解决方案下创建一个独立的项目用于测试你的 MVC应用程序。

选择选项“No, do not create a unit test project (否,不要创建单元测试项目)”,并且点击“OK(确定)”按钮。

图2 - 创建单元测试对话框在新的 MVC应用程序创建好之后。

相关文档
最新文档