cookie与session

来源:互联网 发布:2017 a号黑豹数据 编辑:程序博客网 时间:2024/06/05 12:08

会话(Session)跟踪,用来跟踪用户的整个会话,常用技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。

Cookie机制

Cookie是一小段文本信息。客户端请求服务器,如果服务器需要记录用户状态,就使用response向客户端浏览器颁发一个Cookie。当浏览器再请求该网站,把Cookie和请求的网址一起提交给服务器。服务器检查Cookie,辨认用户状态。服务器还可以修改Cookie内容。

  • 获取Cookie: request.getCookie() ,以Cookie[]数组形式返回。Cookie对象使用key-value属性对的形式,一个Cookie对象保存一个属性对,一个request或response同时使用多个Cookie。
  • 设置Cookie:response.addCookie(Cookie cookie)
  • 修改Cookie:用同名的Cookie覆盖原来的Cookie,除value、maxAge之外所有属性需一致,否则不予覆盖。
  • Cookie的maxAge决定Cookie的有效期,单位为妙。通过getMaxAge()和setMaxAge(int)来读写。如果值为正,就数秒,关闭浏览器仍有效;如果值为负,仅在本浏览器窗口及子窗口内有效,关闭窗口即失效;为0则删除该Cookie。
  • Cookie的域名、路径,可以设置。

Session机制

服务器端使用的一种记录客户端状态的机制。
每个来访者对应一个Session对象,在客户端第一次请求服务器的时候创建。key-value属性对。getAttribute(String key)和setAttribute(String key, Object value)读写。

  • Session的有效期maxInactiveInterval属性,可以通过getMaxInactiveInterval() setMaxInactiveInterval(long interval)获取和修改,也可以在web.xml中修改。
  • 通过调用invalidate(),可以使Session失效。
  • 通过Cookie或URL地址重写,把Session的id给客户端。

参考

  • 《Java web整合开发王者归来》
原创粉丝点击