MVC三层架构理解

MVC三层架构理解MVC三层架构什么是MVC:ModelviewController模型、视图、控制器以前的架构用户直接访问控制层,控制层就可以直接操作数据库;servlet–CRUD–>数据库弊端:程序十分臃肿,不利于维护servlet的代码中:处理请求、响应、视图跳转、处理JDBC、处理业务代码、处理逻辑代码架构:没有什么是加一层解决不了的!程序猿调用↑JDBC(实现该接口)↑MysqlOracleSqlServer….(不同厂商)MVC三层架构M

大家好,又见面了,我是你们的朋友全栈君。

MVC三层架构

  • 什么是MVC: Model view Controller 模型、视图、控制器

以前的架构

(img-NGdCSHqw-1588757845418)(JavaWeb.assets/1568423664332.png)

用户直接访问控制层,控制层就可以直接操作数据库;

servlet--CRUD-->数据库
弊端:程序十分臃肿,不利于维护  
servlet的代码中:处理请求、响应、视图跳转、处理JDBC、处理业务代码、处理逻辑代码

架构:没有什么是加一层解决不了的!
程序猿调用
↑
JDBC (实现该接口)
↑
Mysql Oracle SqlServer ....(不同厂商)

MVC三层架构

[(img-BWDJGUCN-1588757845419)(JavaWeb.assets/1568424227281.png)]

Model

  • 业务处理 :业务逻辑(Service)
  • 数据持久层:CRUD (Dao – 数据持久化对象)

View

  • 展示数据
  • 提供链接发起Servlet请求 (a,form,img…)

Controller (Servlet)

  • 接收用户的请求 :(req:请求参数、Session信息….)

  • 交给业务层处理对应的代码

  • 控制视图的跳转

    登录--->接收用户的登录请求--->处理用户的请求(获取用户登录的参数,username,password)---->交给业务层处理登录业务(判断用户名密码是否正确:事务)--->Dao层查询用户名和密码是否正确-->数据库
    

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153073.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java实现在线预览–openOffice实现[通俗易懂]

    Java实现在线预览–openOffice实现[通俗易懂]Java实现在线预览–openOffice实现

    2022年6月9日
    51
  • \t\t让世界最小linux系统—-ttylinux成为一个小型http服务器[通俗易懂]

    \t\t让世界最小linux系统—-ttylinux成为一个小型http服务器[通俗易懂]我们首先要让ttylinux的网络功能可用:第1步:启动虚拟机;以用户名:root和密码:root登录到ttylinux;编辑网络接口配置文件启动虚拟机的网卡;指令如下:  cd/etc/network.d  //进入网卡配置文件目录  cpsampleinterface.eth0  //把例子文件拷贝为eth0接口的配置文件  viinterface.eth0  //编辑eth0配置文

    2022年8月12日
    6
  • object.finalize_object的equals方法

    object.finalize_object的equals方法Object类九大方法之finalize方法finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。finalize的作用(1)finalize()与C++中的析构函数不是对应的。C++中的析构函数调用的时机是确定的(对象离开作用域或delete掉),但Java中的finalize的调用具有不确定性(2)不建议用fin…

    2022年9月19日
    2
  • 【ES6】Promise用法[通俗易懂]

    【ES6】Promise用法[通俗易懂]promise理解及使用Promise解决的问题——异步Promise的基本用法异步操作拒绝及中断调用链ES6对Promise/A+的扩展Promise.all的扩展Promise.race的扩展众所周知的,Javascript是一种单线程的语言,所有的代码必须按照所谓的“自上而下”的顺序来执行。本特性带来的问题就是,一些将来的、未知的操作,必须异步实现(关于异步,我会在另一篇文章里进行讨论)…

    2022年6月18日
    33
  • Java入门第100课——Calendar的getInstance方法

    不知不觉到第100课了,码字真的累,写完后还要反复检查是否有笔误,以免对大家造成困扰。后面还有好多课时,真的是从零基础开始,一直到框架。不知能不能坚持写完,关注的人越多更的越快。最近更的比较快是因为有存货,存货还能撑50课的样子。一天不吃不喝最多也就写10个课时。有点啰嗦了,有什么想法给我留言吧。问题Calendar类是一个抽象类,它为特定瞬间与一组诸如YE…

    2022年4月14日
    111
  • mybatis的两种分页方式:RowBounds和PageHelper「建议收藏」

    mybatis的两种分页方式:RowBounds和PageHelper「建议收藏」原理:拦截器。使用方法:RowBounds:在mapper.java中的方法中传入RowBounds对象。RowBoundsrowBounds=newRowBounds(10,100);//offset起始行//limit是当前页显示多少条数据publicList<ReportDatainfo>findRecords(ReportDatainforeportD…

    2025年12月5日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号