之前学习java,sevlet编程,遇到一个困扰很久的问题,经常(非必现)不到1,2分钟,后端获取的JSESSIONID就失效了。
网上查了好久,看到有几种原因,以后遇到类似的问题可以参考入手方向.
1.session设置的失效/超时时间(
代码中:session.setMaxInactiveInterval(),
web.xml配置文件中<session-timeout>60</session-timeout>
)
2.response.reset(),会使sessionid发生变化
3.tomcat中session的钝化时间 https://blog.csdn.net/aa8568849/article/details/71079487
4.跨域问题
5.ie的iframe https://blog.csdn.net/en_joker/article/details/78250428
总结:最后我的原因是:我傻叉的在servlet A中设置了
session.setMaxInactiveInterval(60);//大傻叉!!这里60是指一分钟
而我前端有两个servlet,A和B,所以只要我请求过servlet A之后,session的过期时间就是1分钟,如果不请求servlet A,session的过期时间就没有问题,这也解释了为什么不是必现的原因