跟小博老师一起学Servlet ——Servlet之COOKIE

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非常方便。

常用方法

跟小博老师一起学Servlet ——Servlet之COOKIE_第1张图片

cookie

浏览器向某个站点下的servlet发送请求时,浏览器会自动之前以保存的本站点相应cookie发送给servlet。我们借且于HttpServletRequest接口中的getCookies()就可以取得,返回的是一个Cookie数组。

跟小博老师一起学Servlet ——Servlet之COOKIE_第2张图片

设定cookie

构造cookie实例后把它加入到HttpServletResponse对象,浏览器收到应答根据cookie的种类保存cookie。

1)窗口级cookie

跟小博老师一起学Servlet ——Servlet之COOKIE_第3张图片

2)指定时长cookie

跟小博老师一起学Servlet ——Servlet之COOKIE_第4张图片

编辑cookie

当设定以有name的cookie时value会给覆盖,以最后一次为准。删除cookie操作,只要将其有效时长设定为0就可以了。

你可能感兴趣的