Cookie概念
Cookie直译为小甜甜,对于计算机而言cookie是保存在浏览侧一小段数据。每种浏览器都有自己的cookie存储空间,一般不能相互访问。Cookie也是把双刃剑,它带来很便利的同时也带来了安全隐患。浏览器可禁用cookie,或设定安全级别。一般不要禁用cookie,采用浏览器的默认级别就可以。
应用范围
Cookie应用在需要频繁操作、记录浏览历史的场景。比如一些不涉及金钱的网站,可以保存用户与密码以保证在一段时间内不再进行操作,给用户更好的使用体验。早期电商平台的购物车功能,也采用cookie实现。某些特定技术也要依赖cookie,如禁用cookie会导致会话跟踪失效。
Cookie种类
Cookie分成二类,一种是窗口级还一种为指定时间级。所谓窗口级是指浏览器关闭后失效,指定时长级在到达指定的时间后自动失效。会话跟踪技术中的sessionId就是采用的窗口级cookie,“二周自动登陆”功能就要使用指定时长级cookie。
储存格式
Cookie采用Map的方式保存,每个name对应一个value。Key与value的值一般为英文或数字且name不能重复,和Java中的Map结构一致。
操作cookie
可以用JS在浏览器(客户端)中直接操作cookie,但实际应用中使用JQuery插件更为方便。今天小傅老师要跟讲的是利用Servlet指示浏览器操作cookie。
Cookie类
使用javax.servlet.http.Cookie类操作cookie非常方便。
常用方法
取得cookie
浏览器向某个站点下的servlet发送请求时,浏览器会自动之前以保存的本站点相应cookie发送给servlet。我们借且于HttpServletRequest接口中的getCookies()就可以取得,返回的是一个Cookie数组。
设定cookie
构造cookie实例后把它加入到HttpServletResponse对象,浏览器收到应答根据cookie的种类保存cookie。
1)窗口级cookie
2)指定时长cookie
编辑cookie
当设定以有name的cookie时value会给覆盖,以最后一次为准。删除cookie操作,只要将其有效时长设定为0就可以了。