因为客户的訪问次数是一个整型的变量,但session的属性类型中不能使用int,double,boolean等基本类型的变量,所以我们要用到这些基本类型的封装类型对象作为session对象中属性的值
但像Integer是一种不可改动(Immutable)的数据结构:构建后就不能更改。这意味着每一个请求都必须创建新的Integer对象,之后使用setAttribute来取代之前存在的老的属性的值。比如:
HttpSession session = request.getSession();
SomeImmutalbeClass value = (SomeImmutableClass)session.getAttribute(“SomeIdentifier”);
if (value= =null){
value = new SomeImmutableClass(…); // 新创建一个不可更改对象
}else{
value = new SomeImmutableClass(calculatedFrom(value)); // 对value又一次计算后创建新的对象
}
session.setAttribute(“someIdentifier”,value); // 使用新创建的对象覆盖原来的老的对象