一、mvc和三层架构
- 什么是mvc?
(1) mvc的全名是model view controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计模式。
(2) model:即模型。也就是javabean、domain、entity
- 封装数据的模型:实体
- 在java web中,把数据封装到一个实体类的对象中,传递对象
- domain:实体类。也叫entity
a) 把属性设置为私有的
b) 添加get、set方法
c) 必须要有默认的无参构造方法
d) 这个类必须是public公共的
(3) view:即视图。
- 也是就jsp、html、css、javascript代码。实现数据的展示
- 位置在webcontent文件夹下
(4) controller:即控制器。也就是servlet
- 接受用户请求,调用模型处理请求,选择视图(jsp)显示相应结果
- 什么是三层架构?
(1) 表现层(ui):
a) 主要是指与用户交互的界面。用于接收用户输入的数据和显示处理后用户需要的数据。
b) 前端代码:view。用户和用户、界面的显示。jsp、js、html、css
代码位置:webcontent
c) 后台代码:control。用户控制跳转、调用业务逻辑层。
servlet、springmvc、struts2。
a) 包名:xxx.controller或xxx.servlet
(2) 业务逻辑层(service层或bll)
- ui层和dao层之间的桥梁。实现业务逻辑。业务逻辑具体包含:验证、计算、业务规则等等
- 包名:xxx.service
- 接口名:ixxxservice
- 实现类名:xxxserviceimpl
(3) 数据访问层(dao层)
- 与数据库打交道。主要实现对数据的增、删、改、查。将存储在数据库中的数据提交给业务层,同时将业务层处理的数据保存到数据库
- 包名:xxx.dao
- 接口名:ixxxdao
- 实现类名:xxxdaoimpl
(4) 三层之间的关联
- 生活中的三层架构
-
服务员:只管接待客人;
厨师:只管做客人点的菜;
采购员:只管按客人点菜的要求采购食材;
他们各负其职,服务员不用了解厨师如何做菜,不用了解采购员如何采购食材;厨师不用知道服务员接待了哪位客人,不用知道采购员如何采购食材;同样,采购员不用知道服务员接待了哪位客人,不用知道厨师如何做菜。
- 为什么要使用三层架构?
(1) 使用三层架构的目的:解耦!!!遵守的原则:高内聚、低耦合
(2) 同样拿上面饭店的例子来讲:
(3) 服务员(ui层)请假——另找服务员;厨师(bll层)辞职——招聘另一个厨师;采购员(dal)辞职——招聘另一个采购员;
顾客反映:
1、你们店服务态度不好——服务员的问题。开除服务员;
2、你们店菜里有虫子——厨师的问题。换厨师;
任何一层发生变化都不会影响到另外一层!!!
- 三层架构的表现形式?