Cookie的含义是“服务器送给浏览器的甜点”,即服务器在响应请求时可以将一些数据以“键-值”对的形式通过响应信息保存在客户端。当浏览器再次访问服务器中相同的应用时,会将之前的Cookie通过请求信息带到服务器端。
下面的Servlet展示了Cookie的功能。
该Servlet对应的url-pattern为/testCookie
当浏览器请求地址“.../tst/testCookie?option=add”时,该Servlet创建一个Cookie对象,
存储的键-值对为 “cool”-“yeah”。通过response的addCookie方法将该Cookie信息添加到相应信息中。需要注意的是cookie的 setMaxAge方法用于设置该cookie生命周期,单位是秒,如果过了这个期间,Cookie将失效。setMaxAge方法的参数如果为负值则表 示该Cookie将在浏览器关闭时过期,如果参数为0则表示立刻删除该Cookie。
访问该地址,对应的请求和响应的HTTP信息为:
Cookie可以用于保持用户的会话状态,但Cookie信息保存在客户端,存在较大的安全隐患,且一般浏览器对Cookie的数目及数据大小有严格的限制。在Web应用中,一般情况下通过HttpSession对象保持会话状态。
每个Cookie都可以设置一个最大生命周期,如果设置了该值,浏览器将会把该Cookie写到硬盘上。如果没有设置Cookie的最大生命周期,这样的Cookie称为会话Cookie,它存在内存中,当浏览器关闭时,该Cookie消失。
领取专属 10元无门槛券
私享最新 技术干货