MVC
目录
- MVC
-
- 早先年的架构
-
- MVC三层架构
-
- Model
-
- View
-
- Conroller(Servlet)
-
- 以登录举例
-
MVC: Model View Controller —-> 模型 视图 控制器
1. 早先年的架构
graph LR id1[用户] –> id2[控制器:Controller
Servlet
1.接受用户的请求
2.响应给客户端内容
3.重定向或者转发] id1 –> id3[View:视图层
JSP
1.展示数据
2.提供可以供我们操作的请求] id2 –> id4[JavaBean
( pojo )
( entity )] id3 –> id4 id5[Servlet和JSP都可以写Java代码
为了易于维护和使用,我们约定:
Servlet专注于处理请求,以及控制视图的跳转
JSP专注于显示数据] id4 –JDBC–> id6[(数据库)]
用户解访问控制层,控制层就可以直接操作数据库
Servlet — CRUD –> 数据库
弊端:程序十分臃肿,不利于维护
Servlet的代码中:处理请求,响应,跳转请求,处理JDBC,处理业务代码,处理逻辑代码
架构:没有说明是加一层解决不了的!(例如:JDBC)
2. MVC三层架构
graph BT id1[用户] –> id3[View:视图层
JSP
1.展示数据模型
2.提供用户操作] id7 –select–> id4[Dao] id2 –转发或者重定向–> id3 id3 –操作–> id2[控制器:Controller
Servlet
1.接受用户的请求
2.交给业务层去做
3.视图跳转] id5[Servlet和JSP都可以写Java代码
为了易于维护和使用,我们约定:
Servlet专注于处理请求,以及控制视图的跳转
JSP专注于显示数据] id4 –JDBC–> id6[(数据库)] id2 –> id7[Service
( login )
( logout )
( 查询全部用户 )] id4 –> id7 id7 –> id2 id3 –返回给用户的页面中就会存在数据–> id1 subgraph Model:控制业务操作,保存数据,
修改数据,删除数据,查询数据 id4 id7 id8[JavaBean
( pojo )
( entity )] end
1. Model
- 业务处理:业务逻辑(Service)
- 数据持久层:CRUD(Dao)
2. View
- 展示数据
- 提供链接发起Servlet请求(a, form, img…)
3. Conroller(Servlet)
- 接收用户的请求(req:请求参数,session信息…)
- 交给业务层处理对应的代码
- 控制视图的跳转
4. 以登录举例
graph TD id1[登录] –> id2[接收用户的登录请求] –> id3[处理用户的请求 (获取用户登录的参数:username,password)] –> id4[交给业务层处理登录业务(判断用户名密码是否正确:事务)] –> id5[Dao层查询用户名和密码是否正确] –> id6[(数据库)]