什么是MVC: Model view Controller 模型、视图、控制器
1. 最初
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vv9WKBJe-1586441529744)(…/img/1568423664332.png)]
用户直接访问控制层,控制层就可以直接操作数据库;
在servlet中进行所有操作
servlet--CRUD-->数据库
弊端:程序十分臃肿,不利于维护
servlet的代码中:处理请求、响应、视图跳转、处理JDBC、处理业务代码、处理逻辑代码
架构:没有什么是加一层解决不了的!
程序猿调用
|
JDBC
|
Mysql Oracle SqlServer ....
2.MVC三层架构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Kp9gEiHN-1586441529746)(…/img/1568424227281.png)]
1.我的理解
- 首先从view从开始,即我们所看到的网页,在这一部分只负责向用户展示数据和提供链接供用户发起请求
- 请求发起后,转到Controller层,Controller层接收到用户的请求后,没有逻辑的直接进行转发或者重定向,进行视图的跳转,设计逻辑的,则被Controller层转交给Mode层进行处理
- Mode层分为两部分,一个为Service部分,另一个为Dao部分,请求自Controller层转交给Mode层后,首先由Service部分进行处理,Service部分明确其要求后,把要求交给Dao部分去做.
- Dao部分负责与数据库的交互,进行增删改查等等操作。
- 表面上看Service部分几乎没啥用,似乎多此一举,设置Service部分还有一部分原因因为事务,我现在的理解为Service部分为大脑,Dao部分为双手,大脑理解要求以后,让双手去做;
###2.
Model
- 业务处理 :业务逻辑(Service)
- 数据持久层:CRUD (Dao)
View
- 展示数据
- 提供链接发起Servlet请求 (a,form,img…)
Controller (Servlet)
-
接收用户的请求 :(req:请求参数、Session信息….)
-
交给业务层处理对应的代码
-
控制视图的跳转
登录--->接收用户的登录请求--->处理用户的请求(获取用户登录的参数,username,password)---->交给业务层处理登录业务(判断用户名密码是否正确:事务)--->Dao层查询用户名和密码是否正确-->数据库
->交给业务层处理登录业务(判断用户名密码是否正确:事务)—>Dao层查询用户名和密码是否正确–>数据库
## 参考
以上内容为我观看狂神说java所做的笔记
https://www.bilibili.com/video/BV12J411M7Sj?p=42