日期:2014-05-17  浏览次数:20774 次

F5刷新后页面session传值失效
request.getSession().setAttribute("buserlist", rs1);rs1是从数据库获取的信息,用于显示到别的页面,另一个页面得到   <% JDBC4ResultSet rs = (JDBC4ResultSet)request.getSession().getAttribute("buserlist"); %>之后在页面显示,我F5刷新页面之后,页面session传来的东西全没了

------解决方案--------------------
我很好奇lz这样的用法,我还真的没见过把ResultSet放到session里面保存的
一般都是把ResultSet里面的数据取出来,放到某个对象里面,然后保存到session里面

毕竟ResultSet不是一个简单的保存着数据对象,它背后还有数据库连接支撑着,说不定刷新的时候就会把这条数据库连接也断开了呢?

容我异想天开一下,如果我在访客访问A页面时把response对象也放到session里面,岂不是可以在他访问B页面时向A页面的response输出内容?显然这是异想天开吧?
------解决方案--------------------
创建session时会在客户的浏览器添加一个叫JSESSIONID的cookie,只不过这个cookie的setAge(0),表示关闭浏览器的时候这个cookie失效。当在jsp中使用session对象的时候就会去取这个cookie值,然后和服务器的session.getId()想匹配,找到相应的session对象。刷新页面这个cookie应该还在,除非你的浏览器禁用了cookie。我猜应该就是你的浏览器禁用了cookie功能。