一、cookie机制和session机制的区别
具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
同时我们也看到,由于服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要
借助于cookie机制来达到保存标识的目的,但实际上还有其他选择,比如说重写 URL和隐藏表单域。
二、session cookie和session对象的生命周期是一样的吗
当用户关闭了浏览器虽然session cookie已经消失,但session对象仍然保存在服务器端,直到其失效时间。
三、Cookie的过期和Session的超时有什么区别
会话的超时由服务器来维护,它不同于Cookie的失效日期。
首先,会话一般基于驻留内存的cookie不是持续性的cookie,因而也就没有截至日期。即使截取到JSESSIONID cookie,
并为它设定一个失效日期发送出去。浏览器会话和服务器会话也会截然不同。
四、cookie和session如何显示每个客户的访问次数
cookie:1.获取cookie数组中专门用于统计用户访问次数的cookie的值
2.将值转换成int型
3.将值加1并用原来的名称重新创建一个Cookie对象
4.重新设置最大时效
5.将新的cookie输出
session:由于客户的访问次数是一个整型的变量,但session的属性类型中不能使用int,double,boolean等基本类型的变量,所以
我们要用到这些基本类型的封装类型对象作为session对象中属性的值.
但像Integer是一种不可修改(Immutable)的数据结构:构建后就不能更改。这意味着每个请求都必须创建新的Integer
对象,之后使用setAttribute来覆盖之前存在的老的属性的值。如下:
Integer value = (Integer)request.getSession().getAttribute(“cout”);
if (value == null){
// 新创建一个不可更改对象
value = new CountClass(…);
}else{
// 对value重新计算后创建新的对象
value = new CountClass(calculated(value));
}
// 使用新创建的对象覆盖原来的老的对象
request.getSession().setAttribute(“cout”,value);