一个对象的神奇复活,学习session心得

上一篇 / 下一篇  2009-02-22 22:52:03 / 个人分类:Jsp之路

今天主要研究如何进行session开发,发现一个非常有意思的现象。

在开发一个用于电子购物网站的实例中,先编写一个类,叫BuyList吧,相当于一个购物单,中间有这样一段代码
  HttpSession session=request.getSession();
  BuyList list=(BuyList)session.getAttribute("list");
  
  if(list==null){
   list=new BuyList();
   session.setAttribute("list",list);   
  }
  list.addList(new Weapon(name,id,1,price));

以上代码是在session中setAttribute一个叫“list”的key,它是一个对象,实际上应该是指向一个对象的地址。

然后代码转到另一个servlet,用来显示购物单的内容,中间又有一段代码

  HttpSession session=request.getSession();
  BuyList list=(BuyList)session.getAttribute("list");
  
  ArrayList<Weapon> weaponlist=list.getList();

看,这个list居然在另外一个class文件中神奇地复活,注意它是不是公共变量,但是通过session.getAttribut()/setAttribut(),把BuyedList类的实例的地址放在这个Attribut中,就可以通过session随时得到这个BuyedList的实例,这多么有趣。我想这也许就是session类似cookie的地方,只是在服务器端而已。


TAG:

 

评分:0

我来说两句

Open Toolbar