我正在构建一个具有顶部细框架的 Web 应用程序,该框架应显示 servlet session 超时的时间(以秒为单位)。
问题是对 servlet 的 AJAX 调用会返回上次访问时间,而 inactiveInterval 本身会更新 session 。
那么有没有一种方法可以通过不增加lastAccessedTime 的servlet 获取有关 session 的信息?
谢谢
最佳答案
似乎没有人真正回答所问的问题。最后一个响应是最接近的,也可能是最好的,它搭载了另一个请求所需的信息。我想补充一点,如果您可以依靠 XHR Activity ,则可以使用您想要的值设置响应 header 。
假设您确实想要您所要求的 - 总结/重述 - 一个参与 session 但不更新上次访问时间的 servlet,您应该能够使用链接重写 HttpServletResponse 的 Filter 来实现这一点返回一个重写的 Session 对象 - 用它自己的方法重写 getLastAccessedTime() 方法(当然,作为属性存储在实际 session 中)。它可能需要对真实 session 执行自己的手动失效。
这样的问题显示了 Servlet 规范的年龄,即使在其最新形式中,对某些低级身份验证机制也没有足够的控制,并且即使使用过滤器,覆盖也可能很困难。这些限制通过 AJAX 等技术表现出来。
关于java - 获取 session 过期的时间(以秒为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1488185/