MVC开发模式

MVC简单介绍

  Java Web应用的结构一个经历了两种开发模式,分别为Model1和Model2。Model1由大量的JSP页面以及少量的JavaBean组成,页面和Java代码结合在一起无论是开发、扩展还是维护都有极大的不便,所以基于MVC开发模式的Model2应运而生。

  MVC是一种开发模式,它可以将我们的代码解耦,让视图代码,和我们的逻辑代码分开编写,为我们后期的维护带来了极大的便利。MVC将我们的项目结构分为三个部分视图层(View)、控制层(Controller)、模型层(Model),View专职于视图的显示,也就是我们在一个应用的可以看到的页面,Model专职于和数据库的增删改查的操作,Controller负责把View和Controller连接起来,是两者之间的一个桥梁。

  下图展示了MVC开发模式是如何工作的:

            mvc简图

  我们在页面(View)上生成的请求(点击一个超链接生成一个location或者是图片的src请求)会由控制器(Controller)进行处理,控制器(Controller)根据用户的请求作出相应的操作,如果需要数据的交互则调用模型层(Model)的方法来完成数据的交互,模型层(Model)主要处理数据的增删该查的操作。这样一套流程跑通之后就完成了我们的一次请求和响应。

  假如我们现在有一个用户注册的功能来实现。

  View层如下:

<form method="post" action="demo!register.action">
    用户名<input type="text" name="username"><br/>
    密  码<input type="text" name="password"><br/>
    邮  箱<input type="text" name="email"><br/>
    <input type="submit" value="注册">
</form>

  Controller层如下:

private String username;
private String password;
private String email;
public String register() throws Exception{
    HandlerService service = new HandlerService();
    if(service.HandlerRegister(username, password, email)){
        return "success";
    }else{
        return "fail";
    }
}

  Model层如下:

public boolean HandlerRegister(String username,String password,String email){
    try {
        /*
        * 这里执行数据库的操作
        * */
        System.out.println(username);
        System.out.println(password);
        System.out.println(email);
        return true;
    } catch (Exception e) {
        return false;
    }
}

  现在我们把焦点放在处理流程上,上面代码的具体实现请忽略。

  首先我们在页面上产生一个请求:demo!register.action

  这个请求会由控制器(Controller)来进行处理:获取用户输入的信息,然后作为实参传给模型层方法由模型层来完成对用户输入数据的操作,然后将结果反馈给用户

  模型层主要实现数据处理的逻辑,我们可以把模型层方法看做我们平时封装的方法,预留出参数,然后这个方法由控制器(Controller)来调用

  (上面的请求demo!register.action和控制器返回的"success"、"fail"显示的页面都是由struts2来控制的)

时间: 2024-12-26 07:10:02

MVC开发模式的相关文章

Extjs MVC开发模式详解

Extjs MVC开发模式详解 在JS的开发过程中,大规模的JS脚本难以组织和维护,这一直是困扰前端开发人员的头等问题.Extjs为了解决这种问题,在Extjs 4.x版本中引入了MVC开发模式,开始将一个JS(Extjs)应用程序分割成Model-View-Controller三层,为JS应用程序的如何组织代码指明了方向,同时使得大规模JS代码变得更加易于重用和维护:这就是Extjs MVC开发模式的初衷. 在官方给出的MVC例子中,我们可以看到一个简单的列表编辑功能,这篇文章就围绕这个功能进

Extjs 6 MVC开发模式(二)

1.Extjs MVC开发模式 在JS的开发过程中,大规模的JS脚本难以组织和维护,这一直是困扰前端开发人员的头等问题.Extjs为了解决这种问题,在Extjs4.x版本中引入了MVC开发模式,开始将一个JS(Extjs)应用程序分割成Model-View-Controller三层,为JS应用程序的如何组织代码指明了方向,同时使得大规模JS代码变得更加易于重用和维护:这就是Extjs MVC开发模式的初衷. 在官方给出的MVC例子中,我们可以看到一个简单的列表编辑功能,这篇文章就围绕这个功能进行

MVC开发模式的数据运行流程

对于java中经典的开发模式MVC,有一些感触!现说一下Java中数据的运行流程,由于我技术有限,有错的话欢迎提出,不喜勿喷! 我们知道在MVC开发模式,包括三部分视图层V(view).控制层C(Controller)和模型层M(model),那么在一个项目中,这三部分又是指的什么呢? 视图层:顾名思义指的是看到的界面,通常也就是我们所说的JSP页面. 控制层:指的是servlet. 模型层:除了这两部分,剩下的所有. 在这里我将用画图的形式显示一下,数据的流转方式 1.当我们在JSP页面点击一

【转】EXT JS MVC开发模式

原文链接:EXT JS MVC开发模式 在app(亦即根目录)文件夹下面创建controller.model.store和view文件夹,从名称上就知道他们该放置什么代码了吧.然后创建Application.js作为我们程序的入口文件,并在mvc.html中引用Application.js文件.目录结构-->app(根目录)------>controller------>model------>store------>view------>application.js(

MVC开发模式下的用户角色权限控制

前提: MVC开发模式 大概思想: 1.在MVC开发模式下,每个功能都对应着不同的控制器或操作方法名(如修改密码功能可能对应着User/changepd),把每个功能对应的控制器名和操作方法名存到数据库中,分别分配一个Id,这样,每个功能就都对应着一个Id. 2.在用户表中,每个用户都有一个用户角色(类似用户组)id 3.在角色表中,每个角色id都存放着他们自身角色所拥有的功能id的集合 然后在判断权限时,通过用户的角色Id获取相关功能id集合,然后判断当前访问的功能id是否在集合中,大致如此.

MVC 开发模式

MVC 开发模式   1.理解 在MVC模式中,应用程序被划分成了模型(Model).视图(View)和控制器(Controller)三个部分.其中,模型部分包含了应用程序的业务逻辑和业务数据:视图部分封装了应用程序的输出形式,也就是通常所说的页面或者是界面:而控制器部分负责协调模型和视图,根据用户请求来选择要调用哪个模型来处理业务,以及最终由哪个视图为用户做出应答. 注意:数据模型用来存放业务数据,比如订单信息.用户信息等:而业务逻辑模型包含应用的业务操作,比如订单的添加或者修改等. 2.MV

MVC开发模式与javaEE三层架构

1.MVC开发模式 1. M:Model,模型.JavaBean        * 完成具体的业务操作,如:查询数据库,封装对象2. V:View,视图.JSP        * 展示数据3. C:Controller,控制器.Servlet        * 获取用户的输入        * 调用模型        * 将数据交给视图进行展示 2.三层架构(软件设计架构) 1. 界面层(表示层):用户看的得界面.用户可以通过界面上的组件和服务器进行交互2. 业务逻辑层:处理业务逻辑的.3. 数

MVC开发模式和三层架构

MVC:开发模式 1. jsp演变历史 1. 早期只有servlet,只能使用response输出标签数据,非常麻烦 2. 后来有jsp,简化了Servlet的开发,如果过度使用jsp,即在jsp中写大量的java代码,又写html,造成难于维护,难于分工协作 3. 再后来,java的web开发,借鉴mvc开发模式,使得程序的设计更加合理性 2. MVC: 1. M:Model,模型.JavaBean 完成具体的业务操作,如:查询数据库,封装对象 2. V:View,视图.JSP 展示数据 3.

ThinkPHP中的MVC开发模式理解一

MVC这三个字母不愧博大精深,当我自以为要马上攻破php最后一道难关的时候,那时候的我好想就想错了,当我研究了一个半月之后,竟然发现其思想是那么的难以理解,直到现在我也不得不承认我只是对这个思想的认识只是一个皮毛,对于很底层的东西还是不太理解,还有别的要说的,但先说一下我对MVC的理解: 其实MVC并不是一个什么语法或者算法,只是一个开发模式,说道开发模式,我所知道的有传统的MODEL模式,即过程化的处理,而MVC则是对结构做了一个很好的优化,更像是一种开发规范,你必须要根据规范去执行,才能够去