MVC三层架构

MVC简介

MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。 [1-2]
模型-视图-控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。

虽然MVC并不是Java当中独有的,但是现在几乎所有的B/S的架构都采用了MVC框架模式。

  • 控制器Controller:控制器即是控制请求的处理逻辑,对请求进行处理,负责请 求转发和重定向;
  • 视图View:视图即是用户看到并与之交互的界面,比如HTML(静态资源),JSP(动态资源)等等。
  • 模型Model:模型代表着一种企业规范,就是业务流程/状态的处理以及业务规则的规定。业务流程的处理过程对其他层来说是不透明的,模型接受的请求,并返回最终的处理结果。业务模型的设计可以说是MVC的核心。
1.3 MVC高级框架应用

​ MVC模式被广泛用于Java的各种框架中,比如Struts2、spring MVC等等都用到了这种思想。

Struts2是基于MVC的轻量级的web应用框架。基于MVC,说明基于Struts2开发的Web应用自然就能实现MVC,也说明Struts2着力于在MVC的各个部分为我们的开发提供相应帮助。

第二节 JSP开发模型

2.1 JavaWeb经历两个时期
2.1.1 JSP Model1

JSP Model1是JavaWeb早期的模型,它适合小型Web项目,开发成本低!Model1第一代时期,服务器端只有JSP页面,所有的操作都在JSP页面中,连访问数据库的API也在JSP页面中完成。也就是说,所有的东西都耦合在一起,对后期的维护和扩展极为不利。

在这里插入图片描述

JSP Model1的优化(Model1第二代)

JSP Model1优化后有所改进,把业务逻辑和数据访问的内容放到了JavaBean(狭义JavaBean:实体类,广义JavaBean:实体类,dao,service,工具类)中,而JSP页面负责显示以及请求调度的工作。虽然第二代比第一代好了些,但还让JSP做了过多的工作,JSP中把视图工作和请求调度(控制器)的工作耦合在一起了。

在这里插入图片描述

2.1.2 JSP Model2

JSP Model2模式已经可以清晰的看到MVC完整的结构了。

JSP:视图层,用来与用户打交道。负责接收数据,以及显示数据给用户;

Servlet:控制层,负责找到合适的模型对象来处理业务逻辑,转发到合适的视图;

JavaBean:模型层,完成具体的业务工作,例如:开启事务、转账等。

在这里插入图片描述
小结:这就是javaweb经历的两个时期,JSP Model2适合多人合作开发大型的Web项目,各司其职,互不干涉,有利于开发中的分工,有利于组件的重用。但是,Web项目的开发难度加大,同时对开发人员的技术要求也提高了。

2.2基于MVC的三层架构的实现

虽然MVC把程序分成三部分,每个部分负责不同的功能,但是这只是逻辑的分离,实际代码并没有真正分离,特别是Model(包括业务、数据访问和实体类、工具类等)部分的代码,为了增强代码的维护性和降低代码耦合性,需要把代码分层管理,于是就有了三层架构:

分别是:web层(表示|界面层)、service层(业务逻辑层)、dao层(数据访问层、持久层)

在这里插入图片描述

web层对应MVC中的Servlet和JSP

其他层都属于MVC中的Model

在这里插入图片描述

案例演示:

web层
    com.qf.web.servlet
    jsp页面放在 WebContent 或  WEB-INF
    
Service层
    com.qf.service  放服务层接口
    com.qf.service.impl  放服务层实现
    
Dao  层
    com.qf.dao   方法 dao接口
    com.qf.dao.impl  放dao实现
    

实体类  
    com.qf.domain   | com.qf.beans  | com.qf.entity | com.qf.pojo

工具类 
    com.qf.commons  | com.qf.utils


    #### 第三节 MVC结合事务练习

通过结合事务和MVC知识,练习一个转账demo

ThreadLocal:线程局部变量:作用实现把数据绑定到线程中,从而实现线程安全。

3.1 项目准备
  • 创建web项目

  • 导入需要jar包

    mysql驱动

​ druid.jar

​ commons-beanutils-1.8.3.jar

​ commons-collections.jar

​ commons-dbutils-1.4.jar

​ commons-logging-1.1.1.jar

  • 添加数据库配置文件

    db.properties

      #连接设置
      driverClassName=com.mysql.jdbc.Driv
  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MVC(模型-视图-控制器)是一种软件设计模式,常用于Web应用程序开发。.NET平台上的MVC三层架构是一种基于MVC模式的系统结构设计方法。 MVC三层架构包括模型层(Model)、视图层(View)和控制器层(Controller)。 模型层(Model)是应用程序的核心,用于处理数据和业务逻辑。模型层负责对数据进行读取、写入和修改,同时也负责处理业务规则和数据验证等操作。它与数据库进行交互,并将数据传递给视图层和控制器层。 视图层(View)是用户界面的呈现层,负责将数据显示给用户。它负责从模型层中获取数据,并将其以可视化的形式展示给用户。视图层通常是一个HTML页面,使用HTML、CSS和JavaScript等技术实现页面的排版和样式。 控制器层(Controller)负责处理用户请求,并与模型层和视图层进行交互。控制器层接收用户请求,并根据请求调用相应的模型层方法进行数据处理。它还负责将模型层返回的数据传递给视图层,并控制视图的显示。控制器层充当了用户和系统之间的桥梁。 MVC三层架构具有良好的解耦性,各层之间的功能清晰划分,减少了模块之间的依赖,提高了代码的可维护性和可扩展性。模型层负责数据处理,易于进行单元测试和数据验证。视图层负责展示界面,可灵活定制和样式美化。控制器层负责处理请求逻辑,使得系统具有更好的灵活性和可重用性。 总而言之,MVC三层架构是一种有效的架构设计方法,能够使.NET平台上的应用程序更加灵活、高效且易于维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值