本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用.
转载请注明 出自 : luogg的博客园 谢谢配合!
两个会话的技术cookie session
会话概念 : 打开浏览器,多次访问WEB资源,关闭浏览器,整个过程称为一次会话.
cookie 客户端技术 不是很安全
session 服务器端技术
session 技术
创建之后,访问
关闭浏览器之后.session销毁,
同一个名字,不同的value,最后的会覆盖之前的
- cookie基于客户端,不安全,并且大小和个数的限制。
- void setAttribute(String name, Object value)
- Object getAttribute(String name)
- String getId() 获取seesion的唯一的ID
- void invalidate() 销毁的seesion
- void removeAttribute(String name) 从会话中删除name的属性值,若不存在不会执行
- void setMaxInactiveInterval(int seconds) 允许客户请求的最长时间
====
session的创建和销毁
- 第一次访问资源,调用request.getSession(),创建session
- 销毁
- 非正常关闭服务器()
- session的过期,Tomcat默认是30分钟。(用户的发呆时间)
调用session.invalidate()手动销毁session
session属性的默认保存时间为30min,如果要修改,可以在web.xml和程序中进行修改以Tomcat为例,Tomcat --> conf --> web.xml --> <session-fonfig> --> <session-timeout> 在程序中修改用 : setMaxInactiveInterval(int val)单位:秒
session 可以用来做什么
1.网上商城中的购物车。
2.保存登录的用户信息。
3.将某些数据放入到session中,供同一用户的各个页面使用。
4.防止用户非法登录到某个页面
HttpSession 生命周期
1、客户端向服务器第一次发送请求的时候,request中并无SessionID
2、此时服务器会创建一个Session对象,并分配一个SessionID。Session对象保存在服务器端,此时为新建状态,调用session.isNew()返回true。
3、当服务器端处理完毕后,会将SessionID通过response对象传回到客户端,浏览器负责保存到当前进程中。
4、当客户端再次发送请求时,会同时将SessionID发送给服务器。
5、服务器根据传递过来的SessionID将这次请求(request)解析
6、循环执行过程3-5,直到Session超时或销毁