Java从入门到放弃;MVC 模式

MVC 模式

MVC 模式是一种软件框架模式,被广泛应用在 JavaEE 项目的开发中。MVC 模式很好理解,但也十分重要,在今后的 Web 应用开发中,我们都离不开它。

之前,我们学习过了 Servlet、JSP,看起来它们都可以独立完成许多功能,却各有特点,MVC 就提供了一种扬长避短,双剑合璧的方法。

1.什么是 MVC

MVC 即模型(Model) 、视图(View)、控制器(Controller)。

模型(Model)

模型是用于处理数据逻辑的部分。

所谓数据逻辑,也就是数据的映射以及对数据的增删改查,Bean、DAO(data access object,数据访问对象)等都属于模型部分。

视图(View)

视图负责数据与其它信息的显示,也就是给用户看到的页面。

html、jsp 等页面都可以作为视图。

控制器(controller)

控制器是模型与视图之间的桥梁,控制着数据与用户的交互。

控制器通常负责从视图读取数据,处理用户输入,并向模型发送数据,也可以从模型中读取数据,再发送给视图,由视图显示。

前面学到的 Servlet 便可以用作控制器。

2.为什么要用 MVC

窃以为,MVC 模式有以下三大好处。

看着舒服

前面学习 Servlet 和 JSP 的时候,我们发现这俩东西都是功能和显示混着来,可读性很差,而使用 MVC,Servlet 里都是逻辑代码,JSP 都是显示代码,一目了然。

写着容易

MVC 模式有利于人员的分工合作,不同的开发人员可各自发挥专长,同时开发不同的部分。

改着省心

MVC 可以在一个时间内专门关注一个方面,从而让应用程序的测试与迭代更加方便。所以,复杂的应用程序大都会选择使用 MVC 模式。

上述好处,用一句行话来说,就叫 “高内聚 低耦合”。

3.设计模式与框架模式

在搜集资料的时候发现很多地方把 MVC 称为一种 “设计模式”,一开始我觉得没什么毛病,从字面上完全说地通,但是仔细一想,“设计模式” 这个词是一个术语,是指工厂模式、单例模式这些东西,是不能乱用的。而 MVC,应该被称作是 “框架模式”。

那么两者有什么区别呢?

设计模式,是针对 “代码” 的,如同修筑房屋时砖瓦的层叠方式,是软件开发的基石。

框架模式,是针对 “框架” 的,是面向某些应用场景的可复用的方案,如同医院、商场等不同功能建筑的布局,是比设计模式更宏观一些的概念。

在今后的文章中,我将与大家共同学习当前的主流框架。

4.MVC 实践

在 JavaEE 中,最为经典的 MVC 模式即

Bean(Model) + JSP(View) + Servlet(Controller)

假如有一个需求:实现编辑网页上的信息并与数据库同步

在实现上,可以分为以下几步:

用 Bean 来映射数据表,并编写好 DAO

用负责查询的 Servlet 调用 DAO 查询需要编辑的内容并发送给用于编辑的 jsp 页面

把编辑页面进行修改后的值,再提交给负责更新的 Servlet 调用 DAO 更新数据库

使用另一个负责查询的 Servlet,把查询出来的更新过的内容发送给负责显示的 JSP

这个部分本来打算自己做一遍,但之前推荐的 Java 学习网站 How2J 上已经有很好的实践教程,我就不费劲了,直接戳下面的链接:

How2J 的 MVC教程

只是一个小练习,看过前面的内容的话一会儿工夫就可以做完。

原文地址:https://blog.51cto.com/14259480/2375325

时间: 2024-10-19 20:28:31

Java从入门到放弃;MVC 模式的相关文章

《Java从入门到放弃》文章目录

转眼半个月过去了,不知不觉也写了10篇博客,突然发现所有的目录都没有纯列表的展示,所以特意写一个目录篇,来记录该系列下所有的文章. 当然,因为现在还没有写完,所以先按时间顺序排列,等相关内容都写完后,再按学习顺序来整理. <Java从入门到放弃>入门篇:XMLHttpRequest的基本用法 <Java从入门到放弃>入门篇:Struts2的基本访问方 <Java从入门到放弃>入门篇:Struts2的基本访问方式(二) <Java从入门到放弃>入门篇:Stru

《Java从入门到放弃》入门篇:springMVC基本用法

springMVC可以理解成用来做数据显示处理的框架,主要内容就是控制器和视图的处理. 在已经安装了spring框架的基础上继续下面的步骤(我使用的MyEclipse2014). 1. 修改web.xml文件 2. 在WEB-INF目录创建springmvc的配置文件 3. 新建一个用来放控制器的包 4. 在包中创建控制器类 5. 访问对应地址 不废话,直接干!!! 一.修改web.xml文件     <servlet>         <servlet-name>spmvc<

《Java从入门到放弃》入门篇:Struts2的基本数据传递方式

把这个和JSP的数据传递方式对比一下,你就会发现·······真的可以少写两句代码!!! struts2中常用的两种数据传递方式如下: 属性匹配方式 ModelDriven接口匹配方式(常用于自定义类型) 个人比较喜欢使用第一种,为什么呢?因为············懒~~~~~. 接下来,有请代码君登场!!! 一.属性匹配方式     属性匹配又分为两种情况,一种是Java基本数据类型,一种是自定义类型,请Look下面的Code.     1.1)自定义一个Singer类,包含3个属性(sin

《Java从入门到放弃》入门篇:变量

变量是什么玩意呢? 变量,顾名思义就是能变化的量 - - 好吧,举个栗子. 图片上的各种餐具,就是变量,因为同一个盘子可以在不同的时间装不同的菜,在这一桌可以装土豆肉丝,在下一桌可以装清炒黄瓜(当然,这个盘子还是要洗洗干净滴). 那么Java当中的变量有哪些要点呢,其语法是怎么样的呢? 我们来写段代码保存上面的清炒黄瓜吧··· 1 String pan9527 = "清炒黄瓜"; 这就是标准的变量的用法,其语法格式:数据类型 变量名 = 值; 三个要点: 1.数据类型 Java中的数据

《Java从入门到放弃》JavaSE入门篇:集合

今天来讲讲Java中的集合和常见集合类型的使用. 什么是集合呢? 刚好最近学校里面军训,只听到教官一声喊:"集合!!!"各位小萌新们就屁颠屁颠的跑过来排列整齐了,这就是集合··· Java中的集合也是一样的意思,Java一声喊:"集合!!!",那么我们就把需要放在一起的数据放到一个集合中.有的人会说"数组不就有这个功能么".是的,数组是有这个功能,但集合与数组相比,功能会更多些,而且不同的集合侧重点不一样,具体有哪些优势,我们接下来讲解. 集合与

《Java从入门到放弃》入门篇:spring中IOC的注入姿势

IOC到底是个什么东东呢?控制反转(Inversion of Control,英文缩写为IoC),其实就是这个东东. 你随便百度一下就会得到比较书面的解释:通过引入实现了IoC模式的IoC容器,即可由IoC容器来管理对象的生命周期.依赖关系等,从而使得应用程序的配置和依赖性规范与实际的应用程序代码分开.其中一个特点就是通过文本的配置文件进行应用程序组件间相互关系的配置,而不用重新修改并编译具体的代码. 说了这么多,通过一个例子就能很好的来理解.以前小王要找对象,要么云茫茫人海中进行匹配(通过 小

Java从入门到放弃

(1)Java入门 变量与注释 用户输入 if 语句 java中的循环 while 原文地址:https://www.cnblogs.com/wenyule/p/12181467.html

《Java从入门到放弃》入门篇:springMVC数据校验

昨天我们扯完了数据传递,今天我们来聊聊数据校验的问题.来,跟着我一起读:计一噢叫,一按艳. 在springMVC中校验数据也非常简单,spring3.0拥有自己独立的数据校验框架,同时支持JSR303标准的校验框架. Spring的DataBinder在进行数据绑定时,会同时调用校验框架完成数据校验工作. 具体使用步骤如下: 1)导入数据校验的JAR包 2)在springmvc的配置文件中添加校验Bean 3)修改实体类,在属性上加上校验的注解 4)修改昨天的login4方法,加上校验的相关代码

《Java从入门到放弃》JavaSE入门篇:面向对象语法一(入门版)

前一次简单说明了一下面向对象编程的概念,今天我们就把这些概念通过Java语法来实现,然后看看效果. 来看第一个案例:定义女神类,再根据女神类创建三个女神对象,并使用女神对象的属性和方法. 第一步:定义女神类(因为Java本身没有这个类型,所以我们自己创建这个类型) /**  * 女神类  */ public class Goddess { public String name; //姓名 public int age; //年龄 public double stature; //身高 /**