会话
会话:用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程可以称之会话
有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾经来过,称之为有状态会话;
一个网站怎么证明你来过?
客户端 服务端
1.服务端给客户端一个信件,客户端下次访问服务器带上信件就可以了 :Cookie
2.服务器登记你来过了,下次你来的时候我来匹配你:Session
保存会话的两种技术
cookie
客户端技术(响应,请求)
Session
服务器技术,利用这个技术,可以保存用户的会话信息,我们可以把信息或数据放在Session 中!
常见场景:网站登录之后,你下次不用再登录了,第二次就不用登录了
cookie:
1.从请求中拿到cookie信息
2.服务器响应给客户端
cookie方法
Cookie[] cookies = req.getCookies(); //获得cookie
ookie.getName(); //获得cookie中的key
cookie.getValue(); //获得cookie中的vlaue
new Cookie("lastLoginTime",System.currentTimeMillis()+""); //新建一个cookie
cookie.setMaxAge(24*60*60); //设置cookie有效期
resp.addCookie(cookie); //相应给客户端一个cookie
cookie一般会保存在本地 用户目录下
一个网站cookie是否存在上线?
1.一个cookie只能保存一个信息
2.一个web网站可以给浏览器发生多个cookie,最多存放20个cookie
3.cookie大小限制有限制4kb
4.300个cookie浏览器上限
删除cookie
1.不设置有效期,关闭浏览器,自动消失
2.设置有效期 0,立马过期
手动删除再另一个页面 新建一个cookie key和要删除的名字一样,然后设置有效期0响应给客户端
编码解码:
out.write(URLDecoder.decode(cookie.getValue(),"utf-8"));//解决cookie中文乱码
Cookie cookie = new Cookie("name", URLEncoder.encode("张三","utf-8"));//解决cookie中文乱码