HttpSession可以存储键/值对,而其中值可以是不可变对象,也可以是可变对象,下面举例说明。
假设键的类型是Integer.
(1)不可变对象
HttpSession session = request.getSession();
Integer value=(Integer)session.getAttribute("key");
if(key==null){
//创建value
}else{
//更新value
}
session.setAttribute("key",value);
由上面的例子可以看出,session存储的不可变对象(比如int, String类型),一旦建立,不能改变它,每次放置新对象,都是用setAttribute方法替代就对象。
(2)可变对象
HttpSession session =request.getSession();
ArrayList<String> value=(ArrayList<String>)session.getAttribute("key");
if(value==null){
//创建value;
}
String valueItem=request.getPatameter("valueItem")//从jsp页面读取值
if((valueItem)!=null&&(!valueItem.trim().equals(""))){
value.add(valueItem)
}
session存储可变对象,实际存储的是可变对象的引用,更新session时,无需使用setAttribute,直接更新该可变对象即可。
本文详细介绍了如何在HTTPSession中存储不可变对象与可变对象。对于不可变对象,如int和String类型,一旦创建就不能更改,需通过setAttribute方法替换新对象;而对于可变对象,如ArrayList类型,则直接修改其内容即可更新。

550

被折叠的 条评论
为什么被折叠?



