首页 > 代码库 > 2016.9.13 会话学习
2016.9.13 会话学习
---恢复内容开始---
会话
打开浏览器访问网站,直至关闭网站为止,所流程被称为会话
cookie
属于客户端技术,把响应的客户端的资源进行存储 只能存字符串
cookie是放在响应头里发送给浏览器
浏览器支持每个服务端20个cookie,共300个 每个cookie 4k大小
实现记录客户端访问的最后时间
1得到客户端所有的cookie
reponse.setContetType("text/html;charset=utf-8");
PrintWriter pw= reponse.getWriter();
Cookie [] cookies=resques.getCookies();
2从cookie中找出存储最后登陆时间的cookie
if (cookies!=null)
{
for(int i=0;i<cookies.length;i++)//cookie 是一个键值对,都是String类型的
{ String name = cookies[i].getName(); //得到cookie的名字
if("lastAccessTime".equals(name))
String value =http://www.mamicode.com/cookies[i].getValue(); value此时的值是毫秒数的
pw.wirte( new simpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date( long.parseLong(time))));//时间格式化
}
}
把这次登陆时间以cookie的形式发送的客户端
Cookie cookie= new Cookie("lastAccessTime",system.currentTimeMillis()+""); 必须是字符串类型的
把cookie发送给客户端
reponse.addCookie(cookie);
cookie 默认存储在浏览器的内存,浏览器一旦关闭,就会将所存储的缓存清除
使用setMaxAge 设置cookie存活时间,默认单位是秒
setMaxAge(-1)默认为-1 会话结束时删除
0的时候为不保存cookie
正数 为生命周期时间
满足什么条件客户端会带着cookie发给服务器端。
1被访问的资源路径,前段要匹配。
cookie.setPath(request.getContextPath());
session
一个客户端对应一个session,同一个会话中只有一个session对象
setAttribute() getAttribute() 实现session的存储
在服务器端的一个技术,session可以存对象
session.setMaxInactiveInterval(10);//设置非活动时间 10s自动销毁;
request.getSession(true);存在session使用存在的,不存在会创建新的;
request.getSession(false);存在session使用存在的 不存在也不会创建。
2016.9.13 会话学习