Java学习笔记——JavaWeb——Cookie

介绍

Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息 。

特点 :

  Cookie是浏览器技术, 基于浏览器.

  Cookie 是将数据存储在浏览器 ,可以设置时间.

使用场景

登录的记住我

jd的购物车数据

广告点击统计等等

使用

package com.cookie;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyCookieTest1 extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		/*
		 * 1 第一次请求,请求中没有Cookie
		 * 2 创建cookie,响应到浏览器
		 * 3 以后浏览器每次请求当前服务器,都会带上之前的cookie
		 * ---------------------
		 * req.getCookies(); 获得所有Cookie
		 * new Cookie("key", "val") 创建Cookie
		 * 没有更新cookie,只有通过同名key去覆盖cookie的值来达到更新
		 * 删除cookie
		 *     cookie 默认是保存至浏览器关闭
		 *     通过设置cookie的生命时间去销毁cookie --> 设置存在0秒
		 *     
		 */
		// 从请求中获得所有cookie
		Cookie[] cookies = req.getCookies();
		for (int i = 0; cookies!= null && i < cookies.length; i++) {
			// 获得cookie的名字       获得cookie的值
			System.out.println(cookies[i].getName()+"="+cookies[i].getValue());
		}
		
		// 向浏览器设置cookie
		// 1 创建cookie对象
		Cookie c1 = new Cookie("c1", "val222");
		// 2 将cookie对象响应回浏览器
		resp.addCookie(c1);
	}
	
}

记录用户最后访问的时间

1 第一次用户访问该请求

2 请求的cookie中获得最后一次访问的时间 , 输出

3 获得当前时间,将时间设置到cookie中并响应回浏览器

package com.cookie;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class MyCookieTest2 extends HttpServlet{

	/**
	 * 记录最后一次访问时间
	 */
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		/*
		 * 获得cookie中记录的时间
		 */
		Cookie[] cookies = req.getCookies();
		for (int i = 0; cookies != null && i < cookies.length; i++) {
			Cookie c = cookies[i];
			if ("lastAccessTime".equals(c.getName())) {
				System.out.println("最后一次访问时间 : "+c.getValue());
			}
		}
		
		
		
		// 将当前时间,设置到Cookie中,并响应
		String format = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
		resp.setCharacterEncoding("utf-8");
		System.out.println(format);
		resp.addCookie(new Cookie("lastAccessTime",format ));
		
	}
	
}

Cookie和Session的关系

session是基于cookie

特点

Cookie

Session

只能存文本

存任意对象

最大存4kb

无限大

存储在浏览器

存储在服务器

 

session基于cookie

最多存30个站点,每个站点存15个cookie

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值