浅谈 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • xmind真正有用的几个快捷键(私人总结)

    xmind真正有用的几个快捷键(私人总结)自己总结的常用并且有用的快捷键,不是百度来的,自己一个个地摸索出来的:Ctrl+Shift+L快捷键助手Ctrl+Home返回中心主题Enter插入主题Tab插入子主题F2编辑主题F3添加/编辑标签F4添加/编辑备注F6下钻Shift+F6上钻Delete删除Ctrl+]插入摘要Ctrl+I插入图片Ctrl+Shift+H

    2022年5月27日
    41
  • js 前进 后退 刷新

    js 前进 后退 刷新前进<inputtype=buttonvalue=前进οnclick=”window.history.go(1)”><inputtype=buttonvalue=前进οnclick=”window.history.forward()”>后退<inputtype=buttonvalue=后退οnclick=”window.history.go(-1)”><inputtype=buttonvalue=后退οnclick=”window

    2022年7月25日
    8
  • bs架构与cs架构的区别详细讲解_cs架构和bs架构的区别举例子

    bs架构与cs架构的区别详细讲解_cs架构和bs架构的区别举例子链接:BS架构和CS架构的区别.本人觉得该博主解释的例子挺容易懂1、CS架构是Client/Service这两个单词的首字母,指的是客户端服务器架构的意思,很多常见的软件都是这种架构。解释:对于CS架构,最为常见的例子就是网络游戏,比如LOL、WOW如果不联网无法使用,你在软件内的所有操作通过互联网能够传递到其他的玩家身上。优点:第一,性能较高:可以将一部分的计算机工作放在客户端上,这样服务器只需要处理数据即可。第二,界面炫酷:客户端可以使用更多系统提供的效果,做出更为炫目的效果。缺点:第一,

    2025年8月31日
    3
  • mysql varbinary类型_mysql中varbinary、binary、char、varchar异同

    mysql varbinary类型_mysql中varbinary、binary、char、varchar异同binary 与 varbinary 类型和 char 与 varchar 类型是相似的 只是他们存储的是二进制数据 也就是说他们是包含字节流而不是字符流 他们有二进制字符的集合和顺序 他们的对比 排序是基于字节的数值进行的 binary 与 varbinary 的最大长度和 char 与 varchar 是一样的 只不过他们是定义字节长度 而 char 和 varchar 对应的是字符长度 存储和取出时对尾部空格的处理 char

    2025年7月3日
    3
  • 市场调研很难做?这些软件帮你理清思绪「建议收藏」

    市场调研很难做?这些软件帮你理清思绪「建议收藏」市场营销在进行市场调研,收集用户需求数据,追踪各市场策略的落实情况等日常工作时,需要使用各种图文工具帮助提高办公效率,推荐8个能够提高效率的神器。亿图脑图(MindMaster):专业思维导图绘制神器亿图脑图是一款国产专业思维导图绘制软件,素材丰富、模板多样,操作简单,易于上手,上千种素材和导图模板支持任意搭配,导图社区收纳各界大佬的思维导图支持编辑下载。5118:热点词汇挖掘神器市场达人可以通过5118官网,查询各个行业词库,了解行业热点,挖掘商机。石墨文档:实时协作办

    2025年6月5日
    2
  • 奇怪的电梯

    奇怪的电梯奇怪的电梯【问题描述】某栋大楼有一种很奇怪的电梯。大楼的每一层楼都可以停电梯,而且第i层楼(1≤i<N)上有一个数字K(≤K≤N)电梯只有四个按钮:开、关、上、下。上、下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:33125代表了Ki(K1=3,K2=3,…),从一层开始。在一层按“上”可以到4层,按“下”是不起作用的,因为没有-2层。那么从A层到B层至少要按几次按钮呢?【输入格式】第1行为3个用1个空格隔开的正整数,表示N、A、B(l≤N≤200,1≤

    2022年6月14日
    38

发表回复

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

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