利用Cookie保存用户基本信息

本文介绍了如何使用Cookie技术在客户端存储用户的基本信息,如账号和密码。当用户勾选“记住我”选项时,后端通过jQuery判断并创建Cookie,设置其有效期,并在响应中写入。HttpServletResponse对象用于向客户端发送数据和响应头。当用户不再希望保留Cookie信息时,可以删除Cookie。在用户每次打开首页时,通过检查Cookie来实现自动登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Cookie
  Cookie是客户端技术,程序把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。这样,web资源处理的就是用户各自的数据了。

与之前说过的session不同,session是保存在服务端的,而cookie是保存在客户端的。

首先先在前端通过Jquey来判断,用户是否勾选了 记住我 复选框,如果勾选了,那么后台将用户的账号和密码写入cookie

首先先创建Cookie,然后将用户名和密码写入Cookie,设置号Cookie存在的时长,用response写入Cookie

后端代码:

//添加缓存
@RequestMapping("/add_cookie")
@ResponseBody
public String add_cookies(User user,HttpServletResponse response)throws Exception{
String username=user.getUserName();
String password=user.getPassWord();

    //将用户名存入cookie 并且设置cookie存在时长
   Cookie cookie_username= new cookie("username",URLEncoder.encode(username,"utf-8"));
   // 设置生存时间
   cookie_username.setMaxAge(60*60*60);
   //将cookie 写入浏览器
   response.addCookie(cookie_username);

//将密码存入cookie 并且设置cookie存在时长
Cookie cookie_password= new cookie(“password”,URLEncoder.encode(password,“utf-8”));
// 设置生存时间
cookie_password.setMaxAge(606060);
// 将cookie 写入浏览器
response.addCookie(cookie_password);
return null;
}

HttpServletResponse对象介绍

HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。查看HttpServletResponse的API,可以看到这些相关的方法

当用户不想再让自己的用户名和密码保存在Cookie中,那么将执行删除缓存的方法

代码如下:

//删除缓存
@RequestMapping("/del_cookie")
@ResponseBody
public String del_cookie(HttpServletRequest request,HttpServletResponse response){
    Cookie[] cookies = request.getCookies();
    if (cookies != null && cookies.length > 0) {
        for (Cookie cookie : cookies) {
            // 找到需要删除的Cookie
            if("username".equals(cookie.getName())){
                // 设置生存期为0
                cookie.setMaxAge(0);
                // 设回Response中生效
                response.addCookie(cookie);
            }
            if("userPassword".equals(cookie.getName())){
                // 设置生存期为0
                cookie.setMaxAge(0);
                // 设回Response中生效
                response.addCookie(cookie);
            }
        }
    }
    return null;
}

最后只用在用户每次打开首页时候,重定向中执行查找Cookie的方法就可以实现了

//判断cookiees是否为空
if(request.getCookies()!=null){
//将cookies值放入cookies数组
Cookie[] cookies = request.getCookies();
//判断cookies数组
if (cookies != null && cookies.length > 0) {
//遍历cookies数组
for (Cookie cookie : cookies) {
if (cookie.getName().equals(“username”)) {
model.addAttribute(“username”, URLDecoder.decode(cookie.getValue(), “utf-8”));
}
if (cookie.getName().equals(“userPassword”)){
model.addAttribute(“userPassword”,URLDecoder.decode(cookie.getValue(),“utf-8”));
}
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值