Java Web (二) Cookie

你要知道

Cookie是一段保存在客户端的小文本,能够将信息保存在客户端,服务器可以获得该信息,可以跟踪用户状态
Cookie有以下特征

  • 文本:服务器给浏览器发送的一端键值对
  • 用途:常用于用户名、密码的保存,记录浏览过的商品
  • 英文:直接存储中文会报错,需要额外的编码解码。但是,cookie操作一般不会用到中文,因此,无视之
  • 数量:可以有多个,但浏览器一般只允许300个Cookie,每个站点最多20个,每个Cookie的上限为4KB

Cookie原理

  1. 浏览器用laobai用户登录狗东
  2. 狗东的服务器会生成一个ID
  3. 狗东的服务器把这个ID传给浏览器
  4. 浏览器收到这个ID后会吧这个ID保存在本地
  5. 用户再次访问狗东时,浏览器会将这个ID发送给狗东的服务器
  6. 狗东收到这个ID后会知道这是一个登录过的用户,直接登录而不需要再次输入密码

以上交互过程的,保存在客户端的ID就是Cookie

操作套路

   创建Cookie  

  1. 新建 new Cookie(键值对)
  2. 时间  设置失效时间 setMaxAge(int time)   如果time为0,则立即失效  如果time为负数,则关闭浏览器是失效
  3. 路径 设置路径 setPath(String path) 把该cookie设置某路径下,浏览器访问此路径的时候,才会携带cookie数据给服务器
  4. 添加 addCookie
Cookie coName = new Cookie("uname", rName);  //创建Cookie对象
coName.setMaxAge(60 * 60 * 24 * 7);          // 最大保存时间
coName.setPath("/");                         // 保存路径
response.addCookie(coName);                  //添加Cookie
				

这里推荐一个小工具 Firefox 的一个小插件 Cookie Manage 很方便的查看Cookie

 获取Cookie

Cookie[] cookies = request.getCookies();
if(cookies != null) {
    for (Cookie cookie : cookies) {		
        System.out.println(cookie.getName()+" : "+cookie.getValue());			
    }			
}else {
    System.out.println("没有cookie");
}

控制台打印Cookie 

总结 

     新建Cookkie的时候一个一个的新建,获取的时候一起获取

   

练习   七天自动登录

模拟一个用户登录 ,第一次登录需要输入用户名和密码,登陆后进入欢迎页面。而后,七天内登录不需要输入用户名密码,直接进入欢迎页面。

附加功能:注销功能,注销后回到主页,再次登录需要输入密码       

参考思路和代码:https://blog.csdn.net/qq_34181343/article/details/89931881

发布了35 篇原创文章 · 获赞 23 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_34181343/article/details/89930559