Cookie和Session
Posted lijiext
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie和Session相关的知识,希望对你有一定的参考价值。
Session和Cookie
1. 会话技术
- 会话:一次会话中包含多个请求和响应;从浏览器给服务器发送请求开始,直到某一方断开连接为止
- 功能:在一次会话中的多次请求之间共享数据
- 方式:
- 客户端会话技术:Cookie
- 服务端会话技术:Session
2. Cookie
-
功能:将数据保存在客户端
-
入门:
-
创建Cookie对象,绑定数据
new Cookie(String name, String value)
Cookie cookie=new Cookie("msg","helloworld");
-
发送Cookie对象
response.addCookie(Cookie cookie)
response.addCookie(cookie);
-
获取Cookie,拿到绑定的数据
request.getCookies()
Cookie[] cookies = request.getCookies(); if (cookies!=null){ for (Cookie cookie : cookies) { String cookieName = cookie.getName(); String cookieValue = cookie.getValue(); System.out.println(cookieName+""+cookieValue); } }
-
-
流程分析
- 第一次请求时服务器给响应头set-cookie: key-value
- 第二次请求时请求头带有cookies
-
细节处理
-
一次发送多个cookie:需要多少个就add多少个
-
cookie在浏览器保存多久:
-
默认浏览器关闭后被销毁
-
持久化:
setMaxAge(int seconds)
seconds>0 表示持久化,写到文件中;同时表示cookie的保存时间(秒)
seconds<0 表示默认值
seconds=0 表示删除cookie
-
-
cookie能否存放中文字符:
tomcat8前不支持,如果需要则需要将中文URL编码
-
cookie获取范围:
-
多个webapp能否共享?
默认不能共享;如果需要则要设置path为根路径cookie.setPath("/")
-
不同tomcat服务器的cookie能共享吗?
cookie.setDomain(String domain)设置一级域名相同,则可以共享
-
-
cookie特点
- 数据存储在客户机
- 浏览器对于单个cookie大小有限制(max 4kb)以及同一域名下cookie个数有限制(20)
- 一般用于不登录身份鉴别
-
以上是关于Cookie和Session的主要内容,如果未能解决你的问题,请参考以下文章