今天主要来学习一下传统的web和mvc处理方式的异同点。
先看web处理方式
左边是客户端。右边是服务器软件。服务器会有一个IIS服务器软件。从客户端发送的请求(例如www.TGB.cn/index.asp)被IIS接收由它交给framework(IIS7 里有集成),framework根据请求的地址执行page_load会创建一个对应的页面类对象。也就是在服务器 index被编译成一个类。
该类的方法会准备一些要输出的HTML或其它内容。
换句话说,在服务端它以为自己请求的是aspx但实际上是页面调用所对应的ProcessRequest方法再去调用 page_load方法然后再读取数据库等处理业务 将发送回浏览器HTML+js +css,由浏览器解析成HTML页面。
mvc的处理程序
我们在客户端输入一个地址,注意默认没有后缀了。例如www.TGB.cn/news/index
重点是服务器端,IIS软件收到请求后,同样交给framework。注意这时候,不是创建一个页面类对象了。
而是去创建一个类的对象。根据路由配置来解析URL并创建news类的对象并调用index的方法(因为客户端的调用是类名news+方法名 index)同时加载一个同名的视图。这时候浏览器收到的也是HTML+js+css。
长话短说:
mvc处理方式请求过来不再是创建一个页面对象然后调用processrequest方法再调用page_load。而是直接创建一个请求类的对象并调用对象的index方法。
总结:
第一次学习mvc的时候 不是很理解,通过在项目中实践。再回头看,慢慢的就明白的多了。学习是靠实践的 ,学习是靠反复的。