Servlet:第四篇【Cookie】

1.会话技术基本概念

会话技术指的是用户开一个浏览器,访问一个网站,只要不关闭浏览器,不管用户点击多少超链接,访问多少资源,直到用户关闭浏览器,整个过程我们称之为一次会话。
会话的好处举例:

  • 在我们录入账号密码的时候,勾选自动登录,当我们下次访问的时候就不用输入密码了
  • 网上商城,保存我们浏览过的商品

2.Cookie

Cookie的基本介绍

  • 网页之间的交互是通过http传输协议传输数据的。而HTTP是无状态协议,所谓的无状态协议指的是,服务器不知道是谁在访问网页。
  • 为了能确认用户的信息,就提出了Cookie技术,这样访问的用户都有自己的标识,服务器就能通过Cookie确认用户的信息了。

Cookie的基本工作流程

浏览器访问服务器,如果服务器需要保存该用户的访问记录,就是用response向浏览器发送一个Cookie,浏览器会把Cookie保存起来。当用户再次访问的时候,浏览器会把请求和Cookie一起交给服务器。

Cookie API

  • Cookie类用于创建一个Cookie对象
  • response定义了一个addCookie方法,向响应头中增加一个对应的Set-Cookie字段
  • request定义了一个getCookie方法,用于获取客户端提交的Cookie
  • 常用的方法:
  • public Cookie(String name , String value)
  • setValue,getValue
  • setMaxAge,getMaxAge
  • setPath,getPath
  • setDomain,getDomain
  • getName
    创建Cookie示例
//设置response编码
response.setContentType("text/html;charset=UTF-8");
//创建Cookie对象
Cookie cookie = new Cookie("username","test");
//设置Cookie时间
cookie.setMaxAge(100);
//向浏览器给一个Cookie
response.addCookie(cookie);
response.getWriter().write("我已经向浏览器发送了一个Cookie");

Cookie特征

Cookie具有不可跨域性,就是Cookie会根据域名把对应的Cookie提交到服务器。

Cookie保存字符(包括中文)

image.png

数据解码过程


image.png

Cookie的有效期

Cookie有效期通过setMaxAge()来设置。如果MaxAge是正数则Cookie会被写入硬盘中,如果MaxAge是负数,Cookie是临时性的,仅仅在本浏览器有效,关闭浏览器就失效。Cookie的默认值为-1;如果MaxAge为0,则表示删除该Cookie

Cookie的域名

Cookie的domain属性决定运行访问Cookie的域名,domain的值规定为".域名"

Cookie的路径

Cookie通过setPath方法设置允许访问Cookie的路径

Cookie的安全属性

1.可以通过设置Cookie的secure属性为true,浏览器指挥在HTTPS和SSL等安全协议中传输Cookie
2.使用MD5加密

应用

1.电商
2.记住用户的账号密码,自动登录等

你可能感兴趣的:(Servlet:第四篇【Cookie】)