当用户登录后,进行了商品选购.即将其加入了购物车.并没有进行提交(即生成订单).就将网页关闭了.可是购物车里面用session保存的商品信息并没有被清空.请问该在何处写清空session的代码.是不是用sessionId来做啊.该怎么做呢

解决方案 »

  1.   

    你可以在这个网页关闭的时候用AJAX 调用一个removesession的方法.
    或者在点别的连接的时候用AJAX 调用一个removesession的方法.
      

  2.   

    设置session超时! 
    回2楼,如果我ALT+F4或者断电,JS是监听不到这个事件的.比如QQ,假如你强制关闭,你会发现你还会在线一段时间.
      

  3.   

    首先session超时肯定要设的,然后可以按照一楼的方法
      

  4.   

    最好的方法就是首先设置一个session超时,然后用AJAX中的removesession方法.
    建议楼主这样实现。
      

  5.   

    超时是一个解决办法,但是不足之处在于达不到关闭页面之后马上就清空session
      

  6.   

    已经非法退出了,session就没人用了,就等过期不就完了。
    如果这个人又重新登录的话,会新建立session。
      

  7.   

    老话题出现了
    1 设置超时是必须的
    2 正常关闭浏览器的时候,或者在页面上点击退出的时候,进行拦截,拦截不管是ajax还是别的
    后台就调用request.getSession().invalidate();即可。session失效了,什么都没了
      

  8.   


    也可以在后台就调用request.getSession().invalidate();即可。session失效了。
      

  9.   


    也可以在后台就调用request.getSession().invalidate();即可。session失效了。
      

  10.   

    这个问题,我好像昨天刚回答过。没有办法,你唯一能做的,就是将session的过期时间缩短。我开着浏览器,不进行任何动作,与我拔断网线,没有任何区别。所以,服务器端是根本无法区分到底是否连线的。你总不能让客户端频繁的(ping)服务器吧,呵呵!
      

  11.   

    一般是都要设置session的要不都挂着服务器不就蹦了
      

  12.   

    这个是老问题了,什么限制用户异地登陆什么的都用得着,最主要的一点是WEB项目的客户端是在浏览器的基础上运行的,跟操作系统无关,而CS的程序诸如QQ都是直接在操作系统上跑得,所以WEB项目的有些功能还是不能跟CS相比!
      

  13.   

    谢谢大家的指点,我不还刚刚做项目,昨天试了用session过期来做,但是这个过期时间不好设,我今天再试试用Ajax来试试吧.谢谢各位啦.
    又遇到一个问题,项目基本上的功能都实现了.在组合时,发现了一个问题,就是当用户点击"退出"时,再点浏览器上的后退按钮,又回到以前的页面了.当然我已将用户的session清空了,缓存也清空了.
    我想这样实现,当用户点击退出后,再不管怎样再点击浏览器上的后退,返回给用户的是另一个页面,提示用户还没有登录,这个怎样实现啊.
      

  14.   

    http://blog.csdn.net/java2000_net/archive/2009/03/05/3958621.aspx 
    參考一下这个
      

  15.   

    请问在javascript中怎么获取session啊,还是根本就不可以在js中获取session啊,那一楼的方法要怎么用啊
      

  16.   

    呵呵,所有问题解决了.谢谢大家的提醒.让我想到了用ajax做,通过获取鼠标和键盘事件.不用设置超时也可以的.谢谢各位
      

  17.   

    呵呵,所有问题解决了.谢谢大家的提醒.让我想到了用ajax做,通过获取鼠标和键盘事件.不用设置超时也可以的.谢谢各位
      

  18.   

    joejoe就这样,太激动了。呵呵!
      

  19.   


    呵呵,这位朋友有点激动了,不过,我能理解。
    友情提醒一下:大家帮你把问题解决了,没有必要把这200分再无满意结账收回吧,
    大家的劳动你应该给他们相应的分数来感谢他们,这样论坛才能发展下去。
    希望你能在Java非技术区中发个帖子说明一下情况。(自愿)