分析:如果能注册并且登录,那每个人都是管理员,任何人都可以对数据恶意操作,这样数据极其不安全。为了数据的安全考虑,
要么创建学生注册页面,但是主页面只能显示本人信息,不能对其他人进行操作,再创建管理员界面进行数据的crud操作。也不知道想法对不对,
本人将用户登录界面和学生信息活动界面单独抽出来,单独创建用户表和学生信息活动表。
在学生信息活动表中添加creatBy和editBy属性记录当前是哪个用户对数据进行了操作(比如增加、修改),如果有恶意操作,在业务层可对其加以权限控制,
比如ip限制
String allowIps = user.getAllowIps();
if(!allowIps.contains(ip)){
throw new LoginException(“ip地址失效”);
}
账号加锁
String lockState = user.getLockState();
if(“0”.equals(lockState)){
throw new LoginException(“账号已锁定”);
}
但业务要求必须有注册页面,当然只能注册学生信息,不能注册管理员。
但是在没有登录系统之前注册学生信息也只是一个添加操作,并不能进入管理系统。
登录注册界面
点击注册
经过10天的努力,studentManage项目雏形基本完成,本项使用的技术有Ajax、jackSon、模板模式、uuid、Git、后端框架:myBatis、前端框架有bootstrap 、jQuery、、、底层数据库使用MySql。。
项目结构
工具类
为什么使用动态代理类
如果不加动态代理,在业务层处理逻辑时与数据库交互的代码或者是业务执行的流程肯定是一起成功、要么一起失败,在传统业务层处理事务不是很方便,第一个不方便,就是mvc已经分工明确,n那么我们在后台写业务层时应该只关心业务逻辑本身,不应该关注与业务逻辑本身之外的内容,比如说事务操作。第二个不方便,事务本身属于一种与数据库相关的机制,业务层又掺杂了与数据库相关的机制。第三个不方便,开发原则中的单一原则,控制器就是用来接收并处理用户请求的,业务层就是用来处理业务逻辑