Cookie原理及其应用

Cookie原理及其运用

1 概念

cookie是一种会话技术,会话:类似于生活中的谈话,消息一来一回,有问有答。
cookie会话:就是客户端与浏览器之间的谈话;
生命周期:在浏览器的开启到浏览器的关闭期间内,一直存在;包含了多次请求和多次响应;

​ 一次会话:浏览器第一次给服务器发送请求,会话就建立了,直到有一方断开为止。

功能:在一次会话的范围内的多次请求间,共享数据
会话方式:客户端会话技术cookie,服务器端会话技术:session

2 cookie执行过程

​ 当客户端第一次发送请求时,浏览器做出响应时,就顺便把cookie信息传递给了客户端,(根据http协议传输的,被存放在响应头里面的)。
​ 当浏览器再次发送请求时,就会把cookie里面的值信息顺便的带过去,所以服务器可以获取到cookie里面的值。

3 cookie快速入门
  1. 服务器端创建cookie对象,绑定数据
  2. 服务器段发送cookie对象,传给前端
  3. 获取cookie,拿到数据,执行过程如下图:
image-20191119121308828
4 cookie的细节
  1. 一次是否可以多个cookie?

    可以发送多个cookie,创建多个cookie对象即可。

  2. cookie保存的时间是多久

    默认情况下,浏览器关闭,cookie就被销毁;

    也可以自己设置时间,需要将cookie数据写入文件中,进行持久化存储。

    Cookie.setMaxAge(int seconds);参数为保存的秒数。

  3. cookie中是否能存取中文?

    在tomcat8前,可以存取中文,8之后可以存取中文。

  4. cookie的获取范围?

    多个项目中的cookie值是默认不能共享的。

    但是,可以使用Cookie.setPath(string path ) 设置cookie的取值,即他的虚拟路径,当虚拟路径都相同时就可以实现共享了。

5 案例:记录上次登陆时间
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

Cookie[] cookie=request.getCookies();
		if (cookie!=null&&cookie.length>0) {
			for (Cookie cookie2 : cookie) {
				if (cookie2.getName().equals("lasttime") ) {
					cookie2.setMaxAge(3600);
					String value=cookie2.getValue();
					response.getWriter().write("last time"+value);
				}
			}
		}else {
			Cookie c1=new Cookie("lasttime", "2019年11月19日12点41分");
			response.addCookie(c1);
			response.getWriter().write("首次访问");
		}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值