1 三层架构
与MVC设计模式的目标一致,都是为了解耦合、提高代码复用;
区别:两者对项目理解的角度不同。
2 三层组成
表示层(USL,User Show Layer)视图层view
业务逻辑层(BLL,Business Logic Layer)Service层
数据访问层(DAL,Data,Access Layer) Dao层
表示层分为前台代码和后台代码 前台代码相当于MVC三层中的V
表示层的后台代码其实就是servlet(控制器)相当于MVC中的C
业务逻辑层和数据层都是增删改查,区别是业务逻辑层是组合(比如删除之前先查询判断),而数据访问层是原子性操作,
3 三层与MVC的关系
表示层(USL,User Show Layer)视图层view
-前台:对应于MVC中的View,用于和用户交互、界面的显示
对应技术 jsp,js,html,css,jquery等web前端技术
代码位置:WebContent
-后台:对应于MVC中的Controller,用于控制跳转,调用业务逻辑层
对应技术 Servlet(SpringMVC,Struts2)
代码位置:位于xxx.servlet包中
业务逻辑层和数据访问层都属于MVC中的M,除此之外在各层传递的JavaBean实体类也属于MVC中的M
业务逻辑层(BLL,Business Logic Layer)Service层
接受表示层的请求调用
组装数据访问层,逻辑性的操作(增删改查组合 eg删:查+删)
代码位置xxx.service包
数据访问层(DAL,Data,Access Layer) Dao层
直接访问数据库,原子性的操作(增删改查)
代码位置xxx.dao包
三层间的关系:
上层将请求传递给下层,下层处理后,返回给上层(通过JavaBean传递)
4 JSP的内置对象都可以在Servlet中得到的
out PrintWriter out =response.getWriter
Session: request.getSession()
application: request.getServletContext()
5 三层间的关系
上层将请求传递给下层,下层处理后返回上层
上层依赖于下层
依赖:代码的理解就是持有成员变量
也就是有A的前提必须有B(现有数据库,才有DAO层,DAO层依赖于数据库)
6 Servlet
一个Severlet对应于一个功能,因此 如果有增删改查(查询单个,查询全部)5个功能,则需要创建5个Servlet
User管理系统
https://github.com/xinguohua/UserSystem