问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何实现MVC模式

发布网友 发布时间:2022-04-22 10:53

我来回答

4个回答

热心网友 时间:2022-05-10 02:27

最简单的方法是使用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)+数据访问层(),page层用于展现页面,action层用于捕获用户事件并调用service层处理业务逻辑,service要处理业务逻辑肯定就要对数据库进行增删改查,拼接HQL语句,然后调用层对数据库进行操作,hibernate完成的就是DAO层。但是这样一来action层对service层产生了依赖,因为要创建一个service接口的引用,service层对层产生了依赖,就是说实例化一个action层的对象,同时要至少实例化一个service层和至少实例化一个层,于是spring的IOC就可以起作用了,就可以降低各层之间的依赖。将各层做为接口对象实例配置到spring中,降低依赖。

热心网友 时间:2022-05-10 03:45

MVC(Model/View/Controller)模式是国外用得比较多的一种设计模式,好象最早是在Smaltalk中出现。MVC包括三类对象。Model是应用对象,View是它在屏幕上的表示,Controller定义用户界面对用户输入的响应方式。
模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。
1、模型(Model)
模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑.
2、视图(View)
视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。
3、控制器(controller)
控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。
MVC
式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性
早期的程序中,如果不注意对数功能和显示的解耦合,常常会导致程序的复杂及难以维护。很多VB,Delphi等RAD程序都有这种问题。甚至现在的C#,Java有时候也会出现把业务逻辑写在显示模块中的现象
管MVC设计模式很早就提出,但在Web项目的开发中引入MVC却是步履维艰。主要原因:一是在早期的Web项目的开发中,程序语言和HTML的分离一直难以实现。CGI程序以字符串输出的形式动态地生成HTML内容。后来随着脚本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在HTML内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML分离。二是脚本语言的功能相对较弱,缺乏支持MVC设计模式的一些必要的技术基础。直到基于J2EE的JSP
Model
2问世时才得以改观。它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能
JSP
Model
1

JSP
Model
2
SUN在JSP出现早期制定了两种规范,称为Model1和Model2。虽然Model2在一定程度上实现了MVC,但是它的应用用并不尽如人意
JSP
Model
1
JSP
Model
2
model2
容易使系统出现多个Controller,并且对页面导航的处理比较复杂
有些人觉得model2仍不够好,于是Craig
R.
McClanahan
2000年5月提交了一个WEB
framework给Java
Community.这就是后来的Struts.
2001年7月,Struts1.0,正式发布。该项目也成为了Apache
Jakarta的子项目之一
Struts
质上就是在Model2的基础上实现的一个MVC架构。它只有一个中心控制器,他采用XML定制转向的URL。采用Action来处理逻辑

热心网友 时间:2022-05-10 05:20

MVC就是模型,视图,控制器.
模型不用说了吧,视图只负责显示,不要带任何逻辑.控制器就是负责控制.
遵循这个思想就可以了。
现在有很多MVC的框架.比如JAVA EE 的STRUTS之类的.

热心网友 时间:2022-05-10 07:11

自己用PHP 写的,在之前公司上班的总结写出来的,只是很简单的例子,但流程都是很明确的,M,C都封装好了,V 用的是 SMARTY,多语言,多模板切换,前后台分离,共用类库
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 动态规划中,如何选择顺推或递归的实现模式? 社会主义实现模式多样化的原因有哪些? Java继承和实现的区别是什么? android如何实现模式对话框 为什么说EPC系统是基于RFID的物联网实现模式 如何跟朋友合伙开公司 连接池的实现模式 因欠朋友钱把商铺转让给朋友的协议怎么写? 社会主义实现模式多样化的原因在用于 怎么快速把店铺转让出去 b2c电子商务有哪几种实现方式 我欠朋友钱想把商铺转让给他的协议怎么写? 多线程实现的四种方式 馈线自动化的实施可采取哪些实现模式? B2C常见的实现模式有哪些 《实现模式》pdf下载在线阅读全文,求百度网盘云资源 怎么取消幻灯片中添加的音乐 新力禧园的房子性价比高吗? 九龙湖新力禧园的质量还可以吗? 南昌新力禧园的楼盘怎么样 网站业务物流管理实现模式 如何使用三菱plc开关量实现模式转换 在Delphi中怎样实现模式窗口? 电子商务的物流模式有哪些 用java如何实现一个模式对话框 我从汕头出发去往广州东的高铁站是厦深潮汕站吗 汕头市到广州的高铁站在哪里。一天多少班车 广州东站(高铁站)在哪? 坐高铁从广州东站到汕头在哪一站下车 – 手机爱问 从潮汕到广州东的高铁途经哪些站? 广州到汕头高铁开通了没有 广州坐高铁到汕头市区在哪个站更近更方便? 广州东站坐火车回汕头去哪里候车? 广州东站高铁站到广东省汕头市怎么走 为啥番茄todo安卓ios数据不能同步? 荣耀机顶盒下载什么软件来看斗阵来看戏? b站up主老番茄和lex的关系怎么样? 如何通过手机将vst安装到电视机上 长虹网络电视怎么安装软件 番茄几至几月份就长一米高了?