#业务
##定义业务功能
当想要添加功能时,先新建一个服务包,包里面建一个服务接口,服务里面先对功能进行定义。
##实现业务功能
接下来写服务的实现,新建一个实现包,包里面新建一个类写一个类实现之前建的服务接口,可以继承接口后直接点击添加未实现的方法自动填充(所有的业务代码最好都写到这里)。
上面两条是一一对应的
#数据
##数据库
###定义数据库功能
我们要使用数据库,新建一个dao包,先建一些对数据库操作的Mapper接口,每张数据表对应一个。
###实现数据库功能
数据库需要一些SQL语句,先把SQL常用的语句写到Mapper.xml里,用ID命名Sql功能,每个数据表一个Mapper.xml,里面的内容依照Mapper包的接口填充。
上面两条是一一对应的,并且可以使用工具自动生成。
##数据模型
新建一个Modle包,每张数据表对应一个写满了属性的Model
#控制器
下面是控制器部分,控制器负责请求跳转、页面渲染、返回数据等
控制器调用服务中的各种功能,服务再调用Mapper.class接口定义的数据库操作,Mappex.xml是Mapper.class接口的实现。
#关于调用接口
我们定义一个接口Ix,x实现来了Ix的fun()方法,那么我们
Ix ix;
ix.fun();
会自动执行x的实现。
#Session
Session是联系整个项目的纽带,基本每个方法都有一个Session参数。
#AOP
面向切面编程,可以用拦截器过滤请求,做权限控制、日志管理等功能。
#登录
cookie+session+拦截器
用户登录时当点击保存密码后,使用JS对用户名和密码加密后存到Cookie,当检测到Cookei后解密并填充到Input中
用户登录成功后把用户Model存放到Session中,同时查出用户所属角色拥有的权限也存到session中
在配置文件中设置Session失效时间,当用户Session失效后用户请求任何页面都会跳转到登录界面,放到拦截器中做。拦截器中同时检测请求页面权限id与用户拥有id是否匹配,做权限拦截。