会话技术:cookie和session
Posted xiongdaren
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了会话技术:cookie和session相关的知识,希望对你有一定的参考价值。
2018-05-10 21:43:16
会话
从打开一个浏览器的某个站点到关闭这个浏览器的整个过程,叫做一次会话。会话技术用于记录这次会话中客户端的数据和状态,它又分为cookie和session。
cookie:
数据存储在客户端,减少了服务器存储的压力,安全性较低,客户端可以清除cookie
session:
数据存储在服务器,服务器的存储压力较大,安全性较高
cookie技术
1)cookie的创建
Cookie cookie = new Cookie(name, value);
参数为String类型,不能用中文
cookie创建后会以响应头的形式传递给客户端
2)cookie的持续时间
默认:关闭浏览器cookie信息被销毁
//为Cookie设置持久化时间
cookie.setMaxAge(60*10);//10分钟,单位为秒
设置持续时间后,cookie信息会存储到磁盘里,并在时间过后销毁信息
3)cookie的携带路径
默认:会在访问产生该cookie的web资源所在的路径时,都携带cookie信息
cookie.setPath("/WEB16");
代表访问WEB16应用中的任何资源都携带cookie
cookie.setPath("/WEB16/cookieServlet");
代表访问WEB16中的cookieServlet时才携带cookie信息
4)想客户端发送cookie
response.addCookie(Cookie cookie)
5)cookie的删除
创建同名同路径的cookie对象,并将持续时间设置为0s,对原来的cookie进行覆盖
6)服务器接收cookie数据
//获得客户端携带的cookie数据
Cookie[] cookies = request.getCookies();
//通过cookie名称获得想要的cookie
if(cookies!=null){
for(Cookie cookie:cookies){
if(cookie.getName().equals("name")){
//获取cookie的值
String cookieValue = cookie.getValue();
System.out.println(cookieValue);
}
}
}
session
session会在服务器为每个用户创建一块内存空间,用于存储数据,客户端每次都要携带JSESSIONID在服务器寻找对应的空间,而session借助cookie的存储空间存储JSESSIONID,因此session的实现基于cookie
1)session的创建
HttpSession session = request.getSession();
如果服务器没有该会话的session对象,则创建一个新的对象
如果已经存在session对象,则返回原来的对象
它的实质是根据JSESSIONID判断客户端是否已经在服务器上存在session对象
2)session的存取方法
session.setAttribute(String name,Object obj);
session.getAttribute(String name);
session.removeAttribute(String name);
3)session的生命周期
创建时间:第一次执行request.getSession()
销毁时间:<1>服务器非正常关闭时
<2>session失效(默认三十分钟)
从何时开始计时?从不操作服务器端资源开始
<3>手动摧毁session
session.invalidate();
以上是关于会话技术:cookie和session的主要内容,如果未能解决你的问题,请参考以下文章