web开发-三层架构
三层架构
如下图所示:
表示层 主要是由控制器和页面组成,控制器接受用户参数,封装数据,调用业务逻辑层完成处理,转发页面;对应的框架是Spring MVC
dao层:这个主要是对应了对数据库的基本操作,CRUD操作;对应的是MyBatis框架
service 层:这个其实是三大框架中最重要的一部分,由于dao层只是针对最简单的数据库操作,而service层可以组合DAO层中的简单方法;形成复杂的操作,我平时主要是将业务操作写在了web层,在以后应该主要给写在service层上。
小案例分析
小案例分析:点击一个用户数据查询,可以查到所有用户的列表信息;
javaweb 项目包路径分析
cn.公司名.项目名.dao :这主要是放数据库操作的
cn.公司名.项目名.domain :这个主要是放数据库表所对应的实体类的
cn.公司名.项目名.service :放业务处理的类
cn.公司名.项目名.util:这个主要是放工具类的
cn.公司名.项目名.web:这个主要是放web 控制层的类
操作如下:
首先,在domain包下创建一个User类
然后,在jsp页面中a标签指向servlet,只有指向servelt才能前后端交互
然后,在web下面创建一个servlet包(因为web下面不仅仅有servelt,可能还有监听器其他的),然后新建一个servelt实现类;
在该UserListServelt的doPost方法下应该是调用UserService接口的方法,但是因为没有写,故先将该方法实现;
在service包下,写一个service接口,定义一个查询用户的方法
在service包下创建一个impl包,这个包里面对UserService进行实现;
但是由于dao还没有写,故先去实现它;
先创建一个Dao接口;
同时,在dao包下创建一个impl包,在该包下进行实现该接口;此时用jdbc操作数据库,我这里没有实现
此时,回到UserServiceImpl类对findAll();方法进行实现;
注意:private UserDao dao = new UserDaoImpl();这是面向接口进行编程;
此时,回到servlet实现类上,进行代码补充;
注意:这里的UserService service = new UserServiceImpl();这里也是用了面向接口编程;