坐标地址

看清楚-----那个飞的风筝才是我

 

dao

从名字上看:
UserDAO数据层接口,上接服务层,下接数据库
UserDAOImpl 是UserDAO的实现类,具体操作数据库的
UserService服务层,上接用户层,下接数据层
UserServiceImpl 服务层UserService的实现类
User**Action用户层,根据用户请求调用service
比如,用户在网页上点击登录,我们把这个请求叫login吧
User**Action会接到这个action请求,发现这是个登陆请求login,这里可以进行一下初步的验证,比如用户名格式,密码格式,如果没问题,那么它就调用service中的login登陆方法,在UserServiceImpl进行验证,比如用户名和密码是否正确。怎么验证呢?UserServiceImpl会调用DAO层的方法,DAO会从数据库中查询。
例如用户是张三,密码是111,的用户登录
User**Action接到请求,请求类型是login,用户名张三,密码111,
做初步判断,用户名不是空的,密码不是空的,格式正确,好,调用service中的方法,传递参数是张三和111
service接到命令,调用DAO的方法,传递参数张三,DAO链接数据库,根据张三这个用户名查到用户信息(包括用户密码),如果没有,证明用户名写错了或者没注册。如果有,那么把结果返回给service
service接到返回的内容,看一下DAO返回的密码是不是111,如果是,那就登陆成功,如果不是,提示密码错误。将处理结果返回给User**Action,
User**Action接到返回结果,在显示到页面上给用户看。
你也可以问为什么分这么多层?不一起直接写?
可以直接写,但是很乱。这样分层,把逻辑都分割,很多地方都可以共用。
还拿登陆和注册来说,登陆的时候要用到根据用户名查询细信息,注册的时候也要判断用户名是否存在。如果你不分层,都写在User**Action里,是不是同样的代码要写两次呢?
而且出了问题也不好查找出在哪里。比如404错误,通常是找不到页面,可以很快的知道是在User**Action里面,数据库操作错误,马上就知道是在DAO里面

posted on 2017-12-14 11:06  Augur  阅读(211)  评论(0编辑  收藏  举报

导航