用户注册:
1,首先用户填写的信息合不合法需要校验
2,对用户密码进行md5加密
3,将信息写入数据库
用户登陆:
1,用户点击登陆 用户名和密码进行传参,通过业务层先对密码进行md5加密
2,查询数据库 判断是否能查询到 如果为空,那我就返回空 证明用户的密码或用户名错误
3,如果有数据,把查询到的数据进行脱敏处理存,然后转换成json字符串 存入到redis中,设置失效时间
4,返回的密钥 准备cookie实现数据存储,setDomain指定域名进行资源共享,将cookie保存到客户端
实现回显:
利用jsonp跨域 发起ajax请求 从缓存中获取密钥返回一个data到前端JS ,然后对数据进行转换 json串–>对象
redis应用在商品分类的查询,存储登陆的密钥,负责校验,数据存到第三方需要脱敏处理,防止信息泄露
用户退出:
1,点击退出按钮跳转页面重定向到系统首页
2,首先从cookie中获取数据,如果cookie不为空且cookie长度大于0,遍历cookie,如果cookie中的名和我之前的一样,就说明找到了cookie,同时获取到了value值,也就拿到了redis中的key, 删除redis中的key,
3,删除cookie,之前怎么设置现在怎么set,设置存活时间为0 则立即删除
商品数据展现:
当用户看中某一个商品时,点击该商品,应该展现的是商品的详情信息.
1,根据商品id ,查询商品和商品详情,呈现到页面中(利用jsp中el表达式动态获取数据信息)
新增购物车:
当查询商品之后,点击新增购物车时.应该跳转到购物车展现页面. 之后完成购物车新增操作.
强调:
1.用户先登陆,通过单点登陆动态获取userid,当用户第一次新增购物车时,应该入库保存
先查询数据库是否有该记录,根据userid和itemid如果没查询到,入库,如果查询到,直接增加数量
2.当用户重复添加时,应该只更新商品的数量.
1,表设计:通过用户id 和商品id标识唯一的购物行为
根据用户id,如何获取用户id,###利用单点登陆方式动态获取userId登陆之后拦截器可以识别,利用request对象进行传参
查询购物车信息,存到域中,之后在列表页面中展现,
更新购物车:
根据用户id和商品id进行更新购物车数量
控制权限:
通过springMVC对外提供拦截器接口 HandlerInterceptor
1,实现HandlerInterceptor 接口
2,重写prehandle方法,
如果用户已经登陆就放行,反则拦截。
如何判断用户已经登陆:
判断客户端是否有指定的cookie
获取cookie中的值去redis中校验是否存在
如果两个条件同时满足则放行 return true
3,重定向到用户登陆页面,return false
springMVC还提供了一个接口 WebMvcConfigurer拦截器的配置
1,实现WebMvcConfigurer接口
2,重写addInterceptor方法,
3,通过InterceptorRegistry下面的方法addInteceptor,注入要拦截的类, 和addPathPatterns添加要拦截的路径 /cart/** /order/** 下面的
订单入库:
当用户点击提交订单时.应该跳转到订单确认页面
订单 和订单商品是一对多的关系 和订单物流是一对一的关系
根据订单id入库订单商品和订单物流
通过订单id查询订单提交成功页面