1 什么是session
coo
kie的session的应用场景:
cookie可以用来保存用户的登陆信息,如果删除cookie则下一次用户仍需要重新登录
session就类似于我们拿到钥匙去开锁,拿到的就是我们个人的信息,一般我们可以在session中存放个人的信息或者购物车的信息。
cookie
保存在浏览器端,session
保存在服务端。
就相当于session是存储个人信息的 cookie一般存储登录信息
2 登录拦截过程 tomcat运行原理
tomcat运行原理
每个用户实际上都是通过找tomcat线程池的一个线程来工作的 使用完成后回收
所有可以在登录的过程中把用户信息存到线程池Threadlocal里边
为什么要加拦截器
可以保证不用对所有controller都进行token信息的判断 更高效
3 隐藏用户信息
使用DTO类接受
4 Session共享问题
因为每个tomcat服务器都有自己的session 要想同步 比较麻烦 一个是有延迟 还有就是如果都同步的话 会导致数据量太大 服务器压力大 影响性能
所以考虑不用session 转而用redis代替
5 redis代替session实现短信验证登录功能
原理其实不复杂
使用map token作为k获取用户名v
电话号码k 获取验证码v
6 解决状态登录刷新问题
其实这不是个问题 就是刚开始拦截器只是拦截了需要登录的路径导致其他路径不生效 所以导致你访问其他路径不刷新令牌
解决办法
使用两个拦截器 第一个拦截器拦截所有路径 第二个拦截器拦截需要登录的路径