MVC
早期只有servlet,只能使用response输出标签数据,非常麻烦, 后来又jsp,简化了Servlet的开发,如果过度使用jsp,在jsp中即写大量的java代码,有写html表,造成难于维护,难于分工协作。
最后java的web开发,借鉴mvc开发模式,使得程序的设计更加合理性
1.对MVC的解释:
- M:Model,模型。JavaBean
① 完成具体的业务操作,如:查询数据库,封装对象
② 简单地说,M就是数据模型。比如你设计一个User对象,包含username和password属性,它就是一个简单的M - V:View,视图。JSP
① 展示数据 - C:Controller,控制器。Servlet
① 获取用户的输入
② 调用模型
③ 将数据交给视图进行展示
2.MVC的优缺点:
* 优缺点:
1. 优点:
1. 耦合性低,方便维护,可以利于分工协作
2. 重用性高
2. 缺点:
1. 使得项目架构变得复杂,对开发人员要求高
3.MVC的开发流程
三层架构
三层架构是一种软件设计架构 。了解学习三层架构是学好SSM框架的必经之路
1.三层架构是哪三层?
- 界面层(表示层):用户看的得界面。用户可以通过界面上的组件和服务器进行交互
- 业务逻辑层:处理业务逻辑的。
- 数据访问层:操作数据存储文件。
2.三层架构图解
对于图文的详解
从 左到右,依次是 浏览器,web服务器,还有数据库。
在 web服务器中,蓝、红、紫,依次是界面层,业务逻辑层,数据访问层。
一次流程
浏览器 访问 界面层,界面层中的控制器 调用 业务逻辑层,业务逻辑层 再去 访问 数据访问层(dao层),dao层再去操作数据库。
数据库把 数据 返回给 dao层,dao 把数据封装给 业务逻辑层,业务逻辑层再把数据给 界面层的控制器,控制器把数据给 JSP(也就是视图),jsp展现到浏览器上。
其中我们发现,control 和 view 都是在界面层的,model 大多用在数据封装,也就是数据访问层封装数据在发送给业务逻辑层
一个问题,业务逻辑层是否是可有可无的,为什么不让servlet直接调用 数据访问层呢?这样岂不是简化了一些?
答:当然不是可有可无的,数据访问层定义的都是最基本的增删改除,但是有的时候我们需要把基本功能拼接起来,比如先找再修改。业务逻辑层的意义在于组合dao层的操作,形成更复杂的功能