Java秒杀项目——实现登录功能

Java秒杀实战——实现登录功能

实现登录功能

一、数据库设计
数据库中包含的主要信息为:手机号码、昵称、密码、salt、头像、注册时间、上次登录时间、登陆次数。
Java秒杀项目——实现登录功能
二、明文密码两次MD5处理
MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。

首先,我们添加相关的依赖:
Java秒杀项目——实现登录功能
然后创建一个MD5工具类(MD5Util),然后进行两次MD5加密。
第一次MD5加密:1.用户端:PASS=MD5(明文+固定Salt)
Java秒杀项目——实现登录功能
第二次MD5加密:2.服务端:PASS=MD5(用户输入+随机Salt)
Java秒杀项目——实现登录功能
再把两次加密的数据存入:
Java秒杀项目——实现登录功能
之后编写login.html,引入jquery.js、bootstrap、jquery-validation、layer.js,主要代码如下图:
Java秒杀项目——实现登录功能
三、JSR303参数检验+全局异常处理器
(1)JSR303参数检验
首先,添加相关依赖:
Java秒杀项目——实现登录功能
第一步,在参数前面加一个@Valid注解,如图:
Java秒杀项目——实现登录功能
第二步,直接public,给需要验证的变量加上不为空、长度和格式的注解(格式为验证器)如图:
Java秒杀项目——实现登录功能
之后需要创建相关的验证器类,IsMobile和IsMobileValidator,如图:
1.IsMobile
Java秒杀项目——实现登录功能
2.IsMobileValidator
Java秒杀项目——实现登录功能
参数检验就完成了。

(2).全局异常处理器
定义异常拦截器:首先,新建一个包,创建一个GlobalExceptionHandler类,
需要加一个@ControllerAdvice注解,如图:
Java秒杀项目——实现登录功能
之后配置全局异常:
Java秒杀项目——实现登录功能
之后在MiaoshaUserService类中抛出异常:
Java秒杀项目——实现登录功能
四、分布式Session
首先,创建一个UUIDUtil工具类:
Java秒杀项目——实现登录功能
在MiaoshaUserService类中加入cookie,并且通过addCookie延长有效期:
Java秒杀项目——实现登录功能
之后,可以通过新建WebConfig类和UserArgumentResolver类进行优化:
1.WebConfig
Java秒杀项目——实现登录功能
2.UserArgumentResolver
Java秒杀项目——实现登录功能