请教session的过时问题

augustfox 2004-04-27 04:24:45
我在登陆页面index.jsp中将<%session.setMaxInactiveInterval(10);%>
在登陆后的页面里查看到getMaxInactiveInterval()=10
但是好像不起作用,10秒后session照样有效
请教大家
...全文
127 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
littcai 2004-04-30
  • 打赏
  • 举报
回复
session的超时是受web.xml部署文件控制的,看看里面的session-timeout吧~~~~~
augustfox 2004-04-29
  • 打赏
  • 举报
回复
我用的wsad5.0.1
Banned 2004-04-29
  • 打赏
  • 举报
回复
我的不会哦,tomcat5.0.16
joy19 2004-04-29
  • 打赏
  • 举报
回复
值得学习呀!UP一下!继续关注!
yangzuyu12 2004-04-29
  • 打赏
  • 举报
回复
-1当然不可以,只能尽可能的把时间设大,或者在指定时间内刷新该页
augustfox 2004-04-29
  • 打赏
  • 举报
回复
大家帮忙测试一下,谢谢!
baijsp 2004-04-29
  • 打赏
  • 举报
回复
值的学习!关注!
augustfox 2004-04-29
  • 打赏
  • 举报
回复
re:shengxuesun(净天)
那是肯定了,问题是setMaxInactiveInterval(-1),
为什么还会失效呢?
shengxuesun 2004-04-29
  • 打赏
  • 举报
回复
session 失效了以后,当然你不会再取得max inactive interval了,所以变成1800,也取得不了user了
augustfox 2004-04-29
  • 打赏
  • 举报
回复
我写了一个最简单的程序又测试了一下,
在test1.jsp中:
<%
session.setMaxInactiveInterval(-1);
session.setAttribute("user",new Integer(10));
%>
<A href="./test2.jsp">href</A>

在test2.jsp中:
<%=session.getMaxInactiveInterval()%>
<br>
<%=session.getAttribute("user")%>
刚开始确实输出-1和10
但如果test1.jsp等一段时间(半小时以上),再链接到test2.jsp,输出:1800和null(恢复默认值了)

可能是我使用session的方法不对,请大家帮助!
Banned 2004-04-29
  • 打赏
  • 举报
回复
Servlet 2.4 Specification 中的描述:
The default timeout period for sessions is defined by the servlet container and
can be obtained via the getMaxInactiveInterval method of the HttpSession
interface. This timeout can be changed by the Developer using the
setMaxInactiveInterval method of the HttpSession interface. The timeout
periods used by these methods are defined in seconds. By definition, if the timeout
period for a session is set to -1, the session will never expire. The session
invalidation will not take effect until all servlets using that session have exited the
SESSIONS
60
service method. Once the session invalidation is initiated, a new request must not
be able to see that session.
就看产品有没有无bug完整的实现这个规范了
augustfox 2004-04-29
  • 打赏
  • 举报
回复
搞不定,不知道是什么问题!
以前用asp设了timeout没发生这样的情况!
augustfox 2004-04-29
  • 打赏
  • 举报
回复
我好像找到原因了,我在jbuilder9下这么做没有失效,
不知道wsad5.0.1是怎么了,下班后再测测:(
baijsp 2004-04-29
  • 打赏
  • 举报
回复
session.setMaxInactiveInterval(60)
1、这里面的60指的是秒,不是分钟
2、我测试过了,当你每60秒刷新一次页面时,这个session会取消掉,但是,如果你一直刷新,或者每隔10几,20几秒刷新一次,那么它不会取消!
3、至于将60变成-1测试时,发现一分钟刷新一次的话,并不能取消session
session.setMaxInactiveInterval(-1)它是否会无休止的存在呢???????
mygia 2004-04-29
  • 打赏
  • 举报
回复
有刷新页面当然不失效啦。
joy19 2004-04-28
  • 打赏
  • 举报
回复
搞定了么?
augustfox 2004-04-28
  • 打赏
  • 举报
回复
setMaxInactiveInterval这样定义的 Specifies the time, in seconds, between client requests before the servlet container will invalidate this session.
我在页面里查过了默认是1800
不过我把MaxInactiveInterval设为1过一点时间确实会过期,恢复到1800,内容清为null

关键是我的程序运行一段时间就会出现session过期问题,因此我的目的是setMaxInactiveInterval(-1),也就是永不过期,
前面写的10、1只是测试的
谁帮帮我!!!!!!!!!!
joy19 2004-04-28
  • 打赏
  • 举报
回复
不能呀!因为session的有效期好像是只要你在使用这个页面几一定能显示!session.putValue("strUserName", aaa); 这个意思就是吧aaa保存给strUserName这个值。你在下个页面就用String strUserName = (String) session.getValue("strUserName");可以吧他找出来!
w5552 2004-04-28
  • 打赏
  • 举报
回复
应该是以分钟为单位得吧
那个应该是10分钟吧
augustfox 2004-04-28
  • 打赏
  • 举报
回复
session.setMaxInactiveInterval()好像不起作用啊
我设为1,在页面里显示getMaxInactiveInterval()=1
但session的内容还是有效的
?????????

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧