文章目录
一、总体思路总结
Spring整合web,其基本思路是:在web的基础上,引入对IOC容器的操作,通过IOC容器工具类,可以获得IOC容器中的Bean,这此Bean提供给web,可以让web对Bean的引用更方便快捷。从学习中得知:常用的可以从操作IOC容器工具类的web空间有:
web servlet
Spring MVC 中的控制层
本学习笔记是在Servlet基础上,整合Spring的IOC容器,实现用户登陆,校验登陆是通过一个登陆信息(如登陆用户名)从数据库中检索是否有访用户的登陆信入眠 ,如果有的话,将数据库中的用户信息都保存到自定义的用户对象中。在整个项目中,需要定义以下层次结构:
DAO层:
数据库操作层,连接数据库,将数据库中的用户信息保存到自定义用户对象中;Service层:
服务层,再次对DAO层的对象进行封装,Controller层:
从页面得到数据,将得到的数据传递服务层的对象进行处理,并得到相应的结果 ,Controller层依据结果,再传给相应的页面;
在Spring中,DAO层和Service层的对象都在Spring IOC容器中进行管理,再通过IOC 管理工具类,根据需要将IOC容器中的Service层对象传递给Controller层,控制层从页面得到相关数据,传递给Service层中的Bean得到返回结果,再依据返回结果,进行页面解析和渲染!
二、DAO层、Service层和Controller层的区别
DAO层:
DAO层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查。
Service层:
Service层叫服务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。
Controler层:
Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。
总结:
个人理解DAO面向表,Service面向业务。后端开发时先数据库设计出所有表,然后对每一张表设计出DAO层,然后根据具体的业务逻辑进一步封装DAO层成一个Service层,对外提供成一个服务。
三、用户登陆校验示例基本流程
(一)添加web所需要的依赖包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.6</version>
</dependency>
<!-- TODO:JavaEE-web系统所需要的jar包 -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<!-- TODO:jsp标签库所需jar包,也是web系统中所必须包含的jar包 -->
<dependency>
<groupId>javax.servlet</groupId>