登陆功能:
1.点击登陆按钮后,前台发送ajaxsubmit请求将表单数据username和password提交到后台、
2.后台接收参数后,controller调用service层的方法,将参数传到service层,service层判断username是否存在,不存在返回账户错误,存在则继续判断密码是否正确,正确则返回一个user到controller,不存在则返回密码错误。
3.controller接收到user后,将user以键值对的形式放入session,从而发送到前台。将结果ajaxresult以json的形式响应到前台
4.前台接收到json参数,登陆成功,跳转到首页,失败则返回错误信息
登陆拦截:
创建一个类继承HandlerInterceptor,重写prehandle方法。获取一个session对象,通过key值获取到session里的user对象,通过session获取的对象是否为null,决定是否拦截。不为null,放行。如果为null,跳转到登录页面
记住我和取消记住我:
记住我
在前端页面的标签添加一个属性value,并赋值,如果选择了记住我,则会将这个值发送到后台,后台可以通过这个值是否为null判断是否选择了记住我。当然要想拿到value,也必须在这个标签上添加name属性。
后台:获取到user后
1.创建两个cookie对象,并将username和password放进去
2.设置路径
3.设置生命周期
4.将cookie响应到浏览器
前台:
1.调用方法获取浏览器中的cookie
2.判断cookie中是否含有username来判断是否是记住我
3.如果结果是true,则分割cookie,得到一个数组 [username=root,password=123]
4.遍历数组,得到两个字符串
5.判断字符串中是否包含username或是password,获取到想要的字符串
6.截取字符串,获取username 的值或是password的值
7.通过id获取对应的input标签,并将得到的值放入其中,当然还有记住我这个选择框,需要让它处于默认选中状态
取消记住我:
后台:
1.从浏览器中获取cookie,得到是一个数组
2.遍历数组
3.判断cookie的key值是否是username或是password,因为需要杀死的cookie是username和password,如果不做判断会把所有cookie都杀死
4.使cookie死亡
5.将死去的cookie响应到浏览器
前台:
1.给所有框赋予空值
2.并让选择框处于不选中状态