【问题标题】:HTTP Session management in Web application (Ajax/Servlet)Web 应用程序中的 HTTP 会话管理 (Ajax/Servlet)
【发布时间】:2014-03-08 05:22:28
【问题描述】:

目前我有一个带有登录凭据的网页,当提供适当的凭据时,该网页允许用户登录。现在,在此登录之后(通过对 Servlet 的 ajax 调用完成验证),用户被重定向到不同的页面(具有不同的 URL)。如何创建/管理会话?

我需要以下功能:

  1. 如果用户关闭选项卡/浏览器窗口,应让用户退出。
  2. 此外,如果用户长时间(约 15 分钟)没有产生任何活动,则应自动注销用户。

注意:我不想依赖 cookie。有没有其他办法?

我还需要对服务器执行重复轮询吗? (这样如果服务器在一段时间后没有收到请求,会话就会过期......)

【问题讨论】:

    标签: ajax session servlets


    【解决方案1】:
    1. 你真的不能那样做。
    2. 请参阅 HttpSession http://docs.oracle.com/javaee/5/api/javax/servlet 的文档,您需要了解两种方法:

      session.getMaxInactiveInterval() 返回 servlet 容器在客户端访问之间保持此会话打开的最大时间间隔(以秒为单位)。

      setMaxInactiveInterval(int interval) 指定客户端请求之间的时间,以秒为单位,servlet 容器将使此会话无效。

    如果您不喜欢默认的会话长度,当然,创建会话非常简单,只需调用session.setAttribute("somename", variable),然后立即调用setMaxInactiveInterval

    【讨论】:

    • 你最后的方法调用没有创建一个 HttpSession,它只是设置了一个属性。
    • 而两者的区别,从功能上讲,是什么?会话要么在您点击页面时自动创建,要么在您第一次使用会话对象时自动创建,对吧?
    猜你喜欢
    • 2023-03-12
    • 2012-06-10
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 2020-04-01
    相关资源
    最近更新 更多