浅谈 MVC与三层架构

浅谈 MVC与三层架构引言:使用Eclipse开发工具写JavaWeb项目时会发现,一个中型或者大型项目随着代码的增多,会发现:代码既可以写在src目录下,也可以写在WebContent目录下。src下可以建很多包,WebContent下可以建很多文件夹。所以问题就来了:一个新的类到底往哪个目录下的哪个文件夹里写?此时解决办法就是:需要一个模式去规范,到底哪个类该往哪里写。…

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

引言:

使用Eclipse开发工具写Java Web项目时会发现,一个中型或者大型项目 随着代码的增多,会发现:代码既可以写在src目录下,也可以写在WebContent目录下。src下可以建很多包 ,WebContent下可以建很多文件夹。

所以问题就来了:一个新的类 到底往哪个目录下的哪个文件夹里写?

此时解决办法就是:需要一个模式去规范,到底哪个类该往哪里写。

                                                                         

 MVC设计模式:

浅谈 MVC与三层架构

视图View

负责页面的显示;与用户的交互。包含各种表单。 实现视图用到的技术有html/css/jsp/js等前端技术。

用户交互:用户鼠标点击页面;填写页面中各种表单……..等等

模型Model

模型负责各个功能的实现(如登录、增加、删除功能)。模型用JavaBean实现。

JavaBeans :

①是Java中一种特殊的类(换言之:JavaBean就是一个Java类).

一个Java类 ,满足以下要求,则可称为一个JavaBean

  a. public修饰的类,提供public 无参构造方法

  b. 所有属性 都是private

  c. 提供getter和setter方法

 

②从使用层面来看,JavaBean分为2大类:

  a. 封装业务逻辑的JavaBean (eg:LoginDao.java 封装了登录逻辑)

  b. 封装数据的JavaBean (实体类:eg:Student.java  Vedio.java 。往往对应于数据库中的一张表,即数据库中有个Student表,项目中就有个Student.java类)

   

 

③JavaBean 是一个可以重复使用的组件,通过编写一个组件来实现某种通用功能,“一次编写、任何地方执行、任何地方重用”。

控制器Controller

控制器负责将视图与模型一一对应起来。相当于一个模型分发器。所谓分发就是:①接收请求,并将该请求跳转(转发,重定向)到模型进行处理。②模型处理完毕后,再通过控制器,返回给视图中的请求处。建议使用Servlet实现控制器。

 

 三层架构:

首先来说,三层架构与MVC的目标一致:都是为了解耦和、提高代码复用。MVC是一种设计模式,而三层架构是一种软件架构。

三层架构分为:表现层(UI)(web层)、业务逻辑层(BLL)(service层)、数据访问层(DAL)(dao层) 再加上实体类库(Model)

1.实体类库(Model),在Java中,往往将其称为Entity实体类。数据库中用于存放数据,而我们通常选择会用一个专门的类来抽象出数据表的结构,类的属性就一对一的对应这表的属性。

·一般来说,Model实体类库层需要被DAL层,BIL层和UI层引用。

2.数据访问层(DAL),主要是存放对数据类的访问,即对数据库的添加、删除、修改、更新等基本操作

 ·DAL就是根据业务需求,构造SQL语句,构造参数,调用帮助类,获取结果,DAL层被BIL层调用

3.业务逻辑层(BLL)

·BLL层好比是桥梁,将UI表示层与DAL数据访问层之间联系起来。所要负责的,就是处理涉及业务逻辑相关的问题,比如在调用访问数据库之前,先处理数据、判断数据。

BLL层只被UIL层引用

  1. 用户表现层(UIL),就是用户看到的主界面。

                        各层引用关系如下图所示:

 

浅谈 MVC与三层架构

 

MVC与三层架构的对应关系,图示如下:

浅谈 MVC与三层架构

 

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

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

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


相关推荐

  • java查看环境变量的命令_java环境变量配置好了

    java查看环境变量的命令_java环境变量配置好了Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。在Windows下,查看环境变量的命令是:set,这个命令会输出系统当前的环境变量。Linux下Linux查看环境变量准确的说是REDHAT下应该如何查看呢,命令是:export如果你想查看某一个名称的环境变量,命令是:echo$环境变量名,…

    2022年10月1日
    2
  • jmeter测试服务器性能测试报告,Jmeter的性能测试

    jmeter测试服务器性能测试报告,Jmeter的性能测试需要分析的系统信息需要分析的业务信息性能需求评估确定性能测试点:关键业务:确定被测项目是否属于关键业务,有哪些主要的业务逻辑点,特别是跟交易相关的功能点。例如转账,扣款等接口。如果项目(或功能点)不属于关键业务(或关键业务点)日请求量:确定被测项目各功能点的日请求量(可以统计不同时间粒度下的请求量如:小时,日,周,月)。如果日请求量很高,系统压力很大,而且又是关键业务,该项目需要做性能测试,而且关…

    2022年6月20日
    38
  • cpus Vs cpu period and cpu quota[通俗易懂]

    1.https://docs.oracle.com/cd/E37670_01/E75728/html/section-zb1_wqw_gt.htmlTocontrolacontainer’sCPUusage,youcanusethe–cpu-periodand–cpu-quotaoptionswiththedockercreateanddocker…

    2022年4月13日
    138
  • phpstorm 中git 的使用

    phpstorm 中git 的使用

    2021年10月17日
    83
  • 以图搜图百度识图_检索什么意思

    以图搜图百度识图_检索什么意思以图识图——基于内容的图片检索CBIR(ContentBasedImageRetrieval)

    2025年10月24日
    3
  • mysql查询语句菜鸟教程_数据库的查询语句大全

    mysql查询语句菜鸟教程_数据库的查询语句大全常规查询查询所有字段:select*from表名;查询指定字段:select列1,列2,…from表名;使用as给字段起别名:select字段as名字….from表名;查询某个表的某个字段:select表名.字段….from表名;可以通过as给表起别名:select别名.字段….from表名as别名;消除重复行:…

    2025年10月5日
    3

发表回复

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

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