JSP中session存值的问题

2025-03-28 08:18:50
推荐回答(2个)
回答1:

原因很简单
List类型的对象,是按照内存地址传递的,getAttribute得到的对象和session所持有的List对象在内存中是同一个实例,所以list.remove(1);后,session中的也被remove掉一个,因为实际上操作的是同一个对象。
而String对象,Java对其有特殊处理,并不一定是放在内存中。
如果session中放的是一个javabean的话,你对其操作,也会像List一样。因为操作的是同一个对象。

回答2:

session在jsp中的默认的属性,不用request.getSession().getAttribute("list");
来取值。session.setAttribute("list",list);List list = (List)session.getAttribute("list");
你试试看