Session 服务器段记录信息的技术
操作
我们只需要掌握原理.和 学会如何获得 session即可.
获得==> request.getSession();
操作:
getAttribute();
setAttribute();
removeAttribute();
getAttributeNames();
session的细节
1> session能在服务器端保存多久?
<session-config>
<session-timeout>30</session-timeout>
</session-config>
在tomcat/conf/web.xml 有如上配置. 该配置决定了session对象的有效存活时间为30分钟.
2> 在我们项目的web.xml中, 也可以加上如上配置.
区别就是影响的范围不同.在项目中配只影响当前项目.
3> (了解).
1. 在session对象中,还有如下方法. 该方法也是控制session对象 的有效存活时间的,单位是秒.
范围是只影响调用该方法的某个session.
void setMaxInactiveInterval(int interval)
2.session的范围问题.
1>浏览器第一次访问服务器,服务器创建session对象.会话开始.
2>*浏览器关闭,保存sessionID的cookie丢失. 会话结束.(session还在服务器中,等死)
*session过期
*手动销毁session
3.session中的其他方法.
//其他操作
System.out.println("session.isNew()"+session.isNew());// 判断session是否 是新的.
System.out.println("session.getCreationTime()"+new Date(session.getCreationTime()));//获得session的创建时间
System.out.println("session.getId()"+session.getId());//获得session的id
System.out.println("session.getLastAccessedTime()"+new Date(session.getLastAccessedTime()));//获得最后一次的访问时间
System.out.println("session.getMaxInactiveInterval()"+session.getMaxInactiveInterval());// 获得session的最大有效时间
session.setMaxInactiveInterval(60);//设置session的最大有效时间为60秒
session.invalidate();//需要记住: 立即让session销毁.
//———————————————————————————————————————————
实例:
例3:验证码
例4:购物车
1. 获得当前请求要添加的商品
2.从Session中取出存放购物车的map
//取不到=>初始化map,并放入session
3.使用当前要添加的商品从map中取值
//取不到=> 放入map,设置数量为1
//取得到=> 将数量+1放回去
4.重定向回商品列表页面
map中的有序子类
LinkedHashMap