仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 613|回复: 7
打印 上一主题 下一主题

[学习教程] NET网页编程之详解ASP.NET MVC使用程序哀求性命周期

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:26:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
前天傍晚我发表了《Java的跨平台就是一句谎言。》,原本就是周末闲来无事,发表一篇略带争议性的博文让大家都来吵吵架,发表自己的看法,根本就没想着谁把谁打倒,一个行业或者是技术阵营是无法用短期口水仗打到对手的。<p>当一个ASP.NETMVC使用程序提出哀求,为了呼应哀求,包括一些哀求实行流程步骤!在ASP.NETMVC使用程序Httprequest
和Httpresponse过程当中,次要包括8个步骤:

1)RouteTable(路由表)的创立

2)UrlRoutingModule哀求拦阻

3)Routingengine断定route

4)routehandler创立相干的IHttpHandler实例

5)IHttpHandler实例断定Controller(把持器)

6)Controller实行

7)一个视图引擎创立

8)视图出现

次要流程图以下:




1)RouteTable的创立
RouteTable的创立产生在mvc使用程序的启动大概web使用程序池的重启!一般的asp.net程序,一个页面哀求对应磁盘上的一个页面!如(http://localhost/index.aspx

对应到服务器磁盘上的文件index.aspx)index.aspx实践上是一个类,由IHttpHandler创立实例化。IHttpHandler包括一个

ProcessRequest办法,卖力呼应页面输入!

可是mvcapplication是分歧的,每个哀求映照到route,route界说在routetable,在使用程序启动时创立!
RouteTable的在使用程序的详细利用以下
<olclass="dp-xml">publicclassMvcApplication:System.Web.HttpApplication{publicstaticvoidRegisterRoutes(RouteCollectionroutes){routes.IgnoreRoute("{resource}.axd/{*pathInfo}");routes.MapRoute("Default",//Routename"{controller}/{action}/{id}",//URLwithparametersnew{controller="Home",action="Index",id=""}//Parameterdefaults);routes.MapRoute("Account",//Routename"{controller}/{action}/{id}",//URLwithparametersnew{controller="Account",action="LogOn",id=""}//Parameterdefaults);}protectedvoidApplication_Start(){RegisterRoutes(RouteTable.Routes);}}
2)UrlRoutingModule哀求拦阻
每个Http哀求都被UrlRoutingModule拦阻,UrlRoutingModule供应了以后的HttpContext的routingengine(路由引擎)。HttpContext实例包括以后哀求的一切数据。UrlRoutingModule把持着routingengine,供应了HttpContext数据到routingengine!UrlRoutingModule完成了IHttpModule接口,在web.config文件举行了注册!

UrlRoutingModule详细的数据布局以下:
<olclass="dp-xml">publicclassUrlRoutingModule:IHttpModule{//次要的MethodsprotectedvirtualvoidInit(HttpApplicationapplication);privatevoidOnApplicationPostMapRequestHandler(objectsender,EventArgse);privatevoidOnApplicationPostResolveRequestCache(objectsender,EventArgse);publicvirtualvoidPostMapRequestHandler(HttpContextBasecontext);publicvirtualvoidPostResolveRequestCache(HttpContextBasecontext);voidIHttpModule.Init(HttpApplicationapplication);//PropertiespublicRouteCollectionRouteCollection{get;set;}}UrlRoutingModule在WebConfig的注册<httpModules><addname="UrlRoutingModule"type="System.Web.Routing.UrlRoutingModule,System.Web.Routing,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"/></httpModules>


3)Routingengine断定route
routingengine基于以后HttpContext断定Route的处置。routingengine指出routetable内里婚配的route,并在IRouteHandler实例创立route处置!

4)routehandler创立相干的IHttpHandler实例在routetable里,每个route都与一个IHttpHandler对应。IHttpHandler基于以后的HttpContext数据卖力创立一个Controller(把持器)!IHttpHandler是由以后举动的IRouteHandler的GetHttpHandler所创立!

详细的细节以下
<olclass="dp-xml">publicinterfaceIRouteHandler{//MethodsIHttpHandlerGetHttpHandler(RequestContextrequestContext);}


5)IHttpHandler实例断定Controller(把持器)
<p>在MVC使用程序中,MvcHandler完成了IHttpHandler,Controller实例,是基于所输出的HttpContext和Url参数与route对应的,数据库有很多应用领域,但是如果你单单学数据库的话基本上做数据库管理员比较合适而已,跟领域结合的你还得再学习那些领域知识。(其实数据挖掘我真是不懂,本来这学期开了一门课了。
兰色精灵 该用户已被删除
沙发
发表于 2015-1-18 14:40:09 | 只看该作者
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。
精灵巫婆 该用户已被删除
板凳
发表于 2015-1-25 12:12:08 | 只看该作者
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
小魔女 该用户已被删除
地板
发表于 2015-2-2 22:04:12 | 只看该作者
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
因胸联盟 该用户已被删除
5#
发表于 2015-2-8 11:52:02 | 只看该作者
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
蒙在股里 该用户已被删除
6#
发表于 2015-2-25 12:01:51 | 只看该作者
有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
飘灵儿 该用户已被删除
7#
发表于 2015-3-7 21:15:09 | 只看该作者
网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!
透明 该用户已被删除
8#
发表于 2015-3-22 02:10:35 | 只看该作者
ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-2-23 22:28

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表