栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SessionTimeout:web.xml与session.maxInactiveInterval()

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SessionTimeout:web.xml与session.maxInactiveInterval()

现在,我被告知这将在使用的第15分钟内终止会话(或所有会话?), 无论其活动如何

这是 错的 。当关联的客户端(Web浏览器)超过15分钟未访问网站时,它将终止会话。看到您尝试解决此问题的确切时间,此活动确实与您最初预期的一样。

HttpSession#setMaxInactiveInterval()
不通过的方式在这里多变化。它不完全一样
<session-timeout>
web.xml
,唯一的区别,你可以改变/运行时编程设定。顺便说一下,更改仅影响当前的会话实例,而不会全局影响(否则将是
static
方法)。


自己 玩耍并体验 一下 ,请尝试将其设置

<session-timeout>
为1分钟并创建
HttpSessionListener
如下内容:

@WebListenerpublic class HttpSessionChecker implements HttpSessionListener {    public void sessionCreated(HttpSessionEvent event) {        System.out.printf("Session ID %s created at %s%n", event.getSession().getId(), new Date());    }    public void sessionDestroyed(HttpSessionEvent event) {        System.out.printf("Session ID %s destroyed at %s%n", event.getSession().getId(), new Date());    }}

(如果您尚未使用Servlet 3.0,因此无法使用

@WebListener
,请
web.xml
按以下所示进行注册)

<listener>    <listener-class>com.example.HttpSessionChecker</listener-class></listener>

请注意,servletcontainer不会在 确切
的超时值之后立即销毁会话。这是一个后台作业,每隔一定的时间间隔运行一次(例如5〜15分钟,具体取决于负载和servlet容器的制造商/类型)。因此,当您

destroyed
在一分钟内没有活动后立即在控制台中看不到任何一行时,请不要感到惊讶。但是,当您在超时但尚未销毁的会话上触发HTTP请求时,该请求将立即被销毁。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/507090.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号