发表于: 2017-09-11 22:54:23
1 812
今天完成的任务
一、重新学习单元测试
因为task5要写很多工具类,需要用单元测试保证工具类的功能正常。可是创建一个测试类以后根本不记得测试类应该怎么写了..于是干脆重新学习了单元测试。
写了一个带有事务的测试基类,这样在测试增删改查时不会污染数据库里面的数据,需要使用事务的测试直接继承测试基类就可以了。
需要注意的是在Spring4里,注解@TransactionalConfiguration已经过期了。@TransactionalConfiguration的事务管理和回滚两个属性由注解@Transational和@Rollback实现。
二、理清任务5思路
1.从home.jsp跳转到job.jsp,也就是访问路径“/u/job”的时候,会有一个拦截器判断当前请求的cookie里有没有携带用户信息。当结果为true时,可以访问job.jsp;当结果为false时,则自动跳转到登录页,要求客户端输入账号密码登录。
2.若客户端没有账号,则需要注册。注册时候填入的密码会把MD5加盐得到的密文直接存到数据库。以后每次登录输入的密码要用同样的MD5加盐方式生成密文并对比数据库里存的密文,若密文相同则登录成功并跳转到job.jsp;若密文不同则返回登录页,要求重新输入正确的密码。
3.另外还有一个自动登录,需要cookie、session来时间。cookie的默认有效时间是浏览器进程,也就是说,关闭浏览器以后cookie信息会被全部清除。可以通过设置cookie的有效时间(如30分钟),把cookie写到客户端的磁盘中。这样就可以实现用户登录成功后,30分钟内不管是关闭浏览器还是重启电脑,再次访问job.jsp都不需要重新登录。
三、user表的设计
用户信息表也是一个比较难的部分,现在很多应用都支持手机/邮箱/第三方登录,还分管理员、普通会员、高级会员等权限,一个user表中可能要包含很多的字段。我在网上了解了一下user表应该怎么设计,发现有一个比较好的方案。就是用户信息表+用户授权表的模式。用户信息表只存id、nickname(昵称)、picture(头像)三个字段,其他的第三方登录信息、手机登录、邮箱登录全部以是否授权的方式存到授权信息表中,这样做的好处是再新增其他登录方式的时候就不需要大片大片的修改字段,可以直接把新的登录方式加到用户授权表就可以了。
tsak5的任务还是要从简单的入手,设计如下字段:
遇到的问题
不清楚user表的login_at字段需不需要用到触发器?可以自动地把每一次登录时间更新到数据库
收获
1.重新学习单元测试
2.理清登录注册功能的逻辑
明天的计划
1.学习数据库触发器
2.实现登录注册功能
进度
任务开始时间 2017.9.10
预计提交时间 2017.9.12
延期风险 有,要延期一天
评论