
MVC 只是一个编程分层的概念,并不是什么编程技术,你用ASP,PHP,JAVA,.NET 都可以实现。
其中M 与数据库打交道,封装数据 *** 作,只提供接口给 C
C 是路由控制器,负责程序的来龙去脉动,连接 M 与 V
V 是视图,负责接收C传过来的参数并显示给用户
MVC 只要你写好M,C,用模板技术,如 SMARTY 分离出数据与模板即是一个简单的 MVC 框架,我本身也有写 MVC 框架,前后台分离,但共用类库,M与C 都写在共用的文件夹里,统一调用,前后台有各自的V,用SMARTY 分离实现,多模板,多语言切换
最简单的方法是使用struts或jsf等mvc的框架,本身就是一个实现。如果自己实现,比较复杂的就是要自己写一个总控制器,接受所有用户的请求,进行分发给其他servlet或直接进行页面跳转。不建议自己实现,建议使用一个mvc框架,然后搞明白他的生命周期和原理,再去看框架总控制器的源代码,这样比较好。原理:
jsp发展经历了两个模型时代,jsp模型一时代是把代码都写在jsp页面上,用户访问jsp页面时,jsp页面来对数据库进行 *** 作并返回值到jsp页面,这样第一不好维护,第二安全性不高,第三代码结构不清晰,第四重用性不高。于是就有了jsp模型二时代,人们将所有的页面请求交给一个servlet控制器来接受,然后进行分发,由该servlet来决定调用其他servlet访问数据库还是进行页面跳转,这个servelt就是MVC中的C,struts中好像叫ActionServlet,Jsf中叫FacesServelt,web.xml中配置的就是总servlet控制器,为了更好的分层,重用,降低依赖性,就有了MVC,由M层接受和绑定用户的数据,V层进行展现,C层进行控制。
目前主流的开发模式是四层开发模式:界面层(page)+动作处理层(action)+业务逻辑层(service)+数据访问层(dao),page层用于展现页面,action层用于捕获用户事件并调用service层处理业务逻辑,service要处理业务逻辑肯定就要对数据库进行增删改查,拼接HQL语句,然后调用dao层对数据库进行 *** 作,hibernate完成的就是DAO层。但是这样一来action层对service层产生了依赖,因为要创建一个service接口的引用,service层对dao层产生了依赖,就是说实例化一个action层的对象,同时要至少实例化一个service层和至少实例化一个dao层,于是spring的IOC就可以起作用了,就可以降低各层之间的依赖。将各层做为接口对象实例配置到spring中,降低依赖。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)