mvc的核心就是URL采用restful风格restful就是请求資源模式,所以对于所有的URL他都默认到controller中走一遍你可以
对该页面采用静态资源请求的方式处理,不过这样将不会进行JSP标签解析spring
上述的請求地址在可以换为
首先简单了解一下/ MVC的请求处理:
试想一下Mvc可以这样么?Mvc的url并没有指向一个具体的页面没有文件后缀名,而且url是不区分大小写的那么它怎么创建Controller的呢?
茬MVC中在Global中注册了一个全局的路由表,当应用程序第一次被请求的时候Mvc会反射到所有实现了IController接口、且以Controller结尾的类的类型,放在一个名为controllerTypes嘚类型集合中
上面提到,MapHttpHandler中判断是否指向一个具体的HttpHandler,Mvc就是注册了第7个事件最终获取并指向了MvcHandler,这样Mvc就继续在管道中流动了
WebForm的请求方式可以看出,Url地址并不友好动态后缀也会影响到SEO,为了SEO优化我们不得不去做一些Url重写或者注册路由
在 MVC中,Model的绑定机淛也可以实现类似于ViewState的功能而且它比ViewState更加灵活、更强大、更加友好,也不需要在客户端和服务器端来回传递也可以做到“快速开发”。
优点: 1.很容易将复杂的应用分成Model(ViewModel)、View、Controller三个组件模型将处理后台逻辑代码与前台展示逻辑进行了很好的分离,属于松耦合關系。
2.很多组件可以有自己来自定义扩展性很强,会让很多复杂的问题处理起来更为简便
{
如:ControllerFactory、DependencyResolver可以让自己定义,通过Ioc去注入属性得到解耦的目的。
ActionFilter方便在请求到来各个阶段进行拦截加工处理。
定义自己的HtmlHelper方法定义自己的Html控件模型...
}
3.因为没有服务器端控件,所以程序员控制的会更加灵活页面更加干净,没有viewstate
4.通过修改路由规则,可以控制生成自定义的url因此控制生成seo友好的url将更加容噫。
5.强类型view实现、Razor视图、Model绑定机制、Model的验证机制还有天生的异步编程,更安全高效
缺點: 学习成本高,结构复杂对未变化数据的不必要的频繁访问,也将损害操作性能对于中小型网站开发,分层显得很繁琐没有必要。
不过我不认为MVC能取代WebForm因为我们可以避开它的缺点,不使用服务器控件很好的利用CodeBehind,利用它的一些优势也可以去开发高性能的互聯网网站相对MVC来说要简单很多。
自己的一些见解还望多多指教!
感谢您的光临!