当前位置: 代码迷 >> Java Web开发 >> java web 里 session 有关问题 高手来看`绝对有挑战性
  详细解决方案

java web 里 session 有关问题 高手来看`绝对有挑战性

热度:760   发布时间:2016-04-17 01:22:50.0
java web 里 session 问题 高手来看`~~~绝对有挑战性
现在有个问题 
有一个arrlylist 然后放到session 里 
在另一个 action 里我掉用 这个 session 把 arrliylist 取出来 放到 两个变量 A和B里 
然后我需要把A和B再次放到 sessionA 和sessionB 中,然后迁移到另一个画面修改sessionA 
但是,在修改后 
我如果不想保存就返回原来画面 
我想直接调用SessionB ,这样就可以显示最初的值了 
我是这么想的 
但是实现起来有问题,就是修改了sessionA后sessionB的值也变了,变的和A一样 
有没有办法能把SessionB的值保存起来 
然后无论怎么修改sessionA ,SessionB里的arrliylist内容都不改变? 
我试着用static 方法声明变量,然后赋值,但是也还是不好用~~~ 
我用setter &getter 也是不好用~~~ 
谁能帮我 
小弟分少~~~ 
在此全部奉上~~~ 
不尽感激~~~

------解决方案--------------------
Java code
import java.io.ObjectInputStream;import java.io.ByteArrayInputStream;import java.io.ObjectOutputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;public class Test {    public static Object deepClone(Object target) {        Object retValue = null;        try {            ByteArrayOutputStream bo = new ByteArrayOutputStream();            ObjectOutputStream os = new ObjectOutputStream(bo);            os.writeObject(target);                        ObjectInputStream is = new ObjectInputStream(new ByteArrayInputStream(bo.toByteArray()));            retValue = is.readObject();                                } catch(IOException e){            e.printStackTrace();        } catch(ClassNotFoundException e){            e.printStackTrace();        }        return retValue;    }        public static void main(String[] args) throws Exception {        java.util.ArrayList list = new java.util.ArrayList();        list.add(1);        System.out.println(deepClone(list));        list.add(2);        System.out.println(list);    }}
  相关解决方案