web开发-三层架构

三层架构

如下图所示:
web开发-三层架构_第1张图片
表示层 主要是由控制器和页面组成,控制器接受用户参数,封装数据,调用业务逻辑层完成处理,转发页面;对应的框架是Spring MVC
dao层:这个主要是对应了对数据库的基本操作,CRUD操作;对应的是MyBatis框架
service 层:这个其实是三大框架中最重要的一部分,由于dao层只是针对最简单的数据库操作,而service层可以组合DAO层中的简单方法;形成复杂的操作,我平时主要是将业务操作写在了web层,在以后应该主要给写在service层上。
小案例分析
小案例分析:点击一个用户数据查询,可以查到所有用户的列表信息;
web开发-三层架构_第2张图片

javaweb 项目包路径分析
cn.公司名.项目名.dao :这主要是放数据库操作的
cn.公司名.项目名.domain :这个主要是放数据库表所对应的实体类的
cn.公司名.项目名.service :放业务处理的类
cn.公司名.项目名.util:这个主要是放工具类的
cn.公司名.项目名.web:这个主要是放web 控制层的类
操作如下:
首先,在domain包下创建一个User类
web开发-三层架构_第3张图片
然后,在jsp页面中a标签指向servlet,只有指向servelt才能前后端交互
web开发-三层架构_第4张图片
然后,在web下面创建一个servlet包(因为web下面不仅仅有servelt,可能还有监听器其他的),然后新建一个servelt实现类;
web开发-三层架构_第5张图片
在该UserListServelt的doPost方法下应该是调用UserService接口的方法,但是因为没有写,故先将该方法实现;

在service包下,写一个service接口,定义一个查询用户的方法
web开发-三层架构_第6张图片
在service包下创建一个impl包,这个包里面对UserService进行实现;web开发-三层架构_第7张图片
但是由于dao还没有写,故先去实现它;
先创建一个Dao接口;
web开发-三层架构_第8张图片
同时,在dao包下创建一个impl包,在该包下进行实现该接口;此时用jdbc操作数据库,我这里没有实现
web开发-三层架构_第9张图片
此时,回到UserServiceImpl类对findAll();方法进行实现;web开发-三层架构_第10张图片
注意:private UserDao dao = new UserDaoImpl();这是面向接口进行编程;
此时,回到servlet实现类上,进行代码补充;
web开发-三层架构_第11张图片
注意:这里的UserService service = new UserServiceImpl();这里也是用了面向接口编程;

你可能感兴趣的:(web开发,java)