0

0

mvc设计模式是什么

coldplay.xixi

coldplay.xixi

发布时间:2020-12-17 15:32:42

|

16021人浏览过

|

来源于php中文网

原创

mvc设计模式是一种软件设计模式,它把应用程序分成了上面3个核心模块:业务层、视图层、控制层。业务层负责实现应用程序的业务逻辑,封装有各种对数据的处理方法;视图层负责应用程序对用户的显示,它从用户那里获取输入数据并通过控制层传给业务层处理,然后通过控制层获取业务层返回的结果并显示给用户。控制层负责控制应用程序的流程,它接收从视图层传过来的数据,然后选择业务层中的某个业务来处理。

mvc设计模式是什么

本教程操作环境:windows7系统、Dell G3电脑。

什么是MVC设计模式

  MVC即Model-View-Controller(模型-视图-控制器)是一种软件设计模式,最早出现在Smalltalk语言中,后被Sun公司推荐为Java EE平台的设计模式。

  MVC把应用程序分成了上面3个核心模块,这3个模块又可被称为业务层-视图层-控制层。顾名思义,它们三者在应用程序中的主要作用如下:

  业务层:负责实现应用程序的业务逻辑,封装有各种对数据的处理方法。它不关心它会如何被视图层显示或被控制器调用,它只接受数据并处理,然后返回一个结果。

  视图层:负责应用程序对用户的显示,它从用户那里获取输入数据并通过控制层传给业务层处理,然后再通过控制层获取业务层返回的结果并显示给用户。

  控制层:负责控制应用程序的流程,它接收从视图层传过来的数据,然后选择业务层中的某个业务来处理,接收业务层返回的结果并选择视图层中的某个视图来显示结果。

  可以用下图来表示MVC模式中三者之间的关系:

  MVC是一种设计思想,它并没有统一的标准,其中一种MVC思想的典型实现为JavaBean(模式)+jsp(视图)+servlet(控制器),而我喜欢将JavaBean中的业务逻辑再单独列出来,形成service(模式)+JavaBean(数据集)+jsp(视图)+servlet(控制器)的结构,下面我们来实现它。

MVC实现

  在这里,我将应用MVC设计模式,实现用户在前台中输入一段文字,后台获取并拼接上字符串“——ysy”,再送回前台显示的一个简单的应用程序。具体效果如图:

magento(麦进斗)
magento(麦进斗)

Magento是一套专业开源的PHP电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。Magento开源网店系统的特点主要分以下几大类,网站管理促销和工具国际化支持SEO搜索引擎优化结账方式运输快递支付方式客户服务用户帐户目录管理目录浏览产品展示分析和报表Magento 1.6 主要包含以下新特性:•持久性购物 - 为不同的

下载

1、视图层

 <%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>




test


    
输入你想说的话~
<% String s = (String)request.getAttribute("outPut");    if(s != null){                         %> <%=s %> <% } %>

2、控制层

  servlet的编写:

 package servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import bean.TestBean;
import service.TestService;

@WebServlet("/test.do")                                    //通过注释配置servlet
public class TestServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public TestServlet() {
        super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        request.setCharacterEncoding("utf-8");                      //设置字符集,防止中文乱码

        TestBean testBean = new TestBean();                        //获取数据集对象
        TestService testService = new TestService();                  //获取业务层对象

        String s =request.getParameter("input");                    //获取视图层提交的数据

        testBean.setInput(s);                                //将数据存入数据集中
        s = testService.change(testBean);                         //调用业务层,传入数据,接收返回结果
        request.setAttribute("outPut", s);                        //将结果存入request域中
        request.getRequestDispatcher("test.jsp").forward(request, response);    //跳转到视图层
    }

}

  如果不想使用注释来配置servlet,还可以通过web.xml进行配置:



  Java_Web
  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  

                                             //通过配置文件配置servlet
    test
    servlet.TestServlet
  
  
    test
    /test.do
  

3、数据集

package bean;

public class TestBean {
    private String input;

    public String getInput() {
        return input;
    }

    public void setInput(String input) {
        this.input = input;
    }

}

4、业务层

package service;

import bean.TestBean;

public class TestService {
    public String change(TestBean testBean) {

        String s = testBean.getInput();        //从数据集中获取数据

        if(s != null && s != "") {          //如果有数据,则拼接字符串
            s += "——ysy";
        }
        return s;
    }
}

三、MVC框架模式的优势

  1、有利于代码的复用

  2、有利于开发人员分工

  3、有利于降低程序模块间的耦合,便于程序的维护与扩展。

更多相关知识,请访问常见问题栏目!

相关文章

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

4

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

3

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

10

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

15

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

42

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

7

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

6

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP+MySQL基础入门课程
PHP+MySQL基础入门课程

共113课时 | 7.1万人学习

PHP MySQL基础编程课
PHP MySQL基础编程课

共111课时 | 8.8万人学习

PHP编程(基础知识点汇总)
PHP编程(基础知识点汇总)

共85课时 | 5.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号