session更新

来源:百度知道 编辑:UC知道 时间:2024/06/18 16:44:58
我的问题是这种情况:
在jsp页面里面有几个查询条件,选择好查询条件后提交到action中进行查询,查询出来的数据放了session里面返回到了jsp页面中显示,主要是这些数据在页面上要经常使用,所以这个session不能关闭,在数据的相应地方有一个删除,当删了一条信息之后不能及时更新,要重新选择一下查询条件才可以看到更新后的数据。
大家帮忙看看有没有更好的解决办法......
session里的值不能移除,此处还有添加以及修改操作,都不能得到及时的更新。
希望大家帮忙看看......

1.你在删除数据的地方,同事删除session里面的数据
2.用FormBean来保存数据,给FormBean设置生命周期,比如说page,过了这个生命周期,你查的数据自动失效。
建议你用第一种方法

session里面的值可以用removeAttribute移除啊。如果这样的话建议你用FormBean来保存这些值,每次别人重新访问你的页面的时候你在action里面从数据库重新查询和设定这些值。

这个问题的关键就是建立缓存数据与物理数据的同步,呵呵,很经典的问题,解决方式有很多的,我提提我的想法,可以这样,再查询时,同时保存下查询条件,并设置一个状态位,session设置一个时间轮询这个flag。当对数据库进行更新操作时,修改该flag,session在轮询到这个flag时知道条件修改了,则根据保存下来的查询条件自动进行数据查询,更新缓存数据,保持缓存数据与物理数据的同步,同时将该flag设为初始状态,继续监视。

不能更新可能是缓存在作怪,根本没有进行第2次查询。
response.addHeader("Cache-Control", "no-cache");
//response.addHeader("Expires", "Thu, 01 Jan 1970 00:00:01 GMT");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);