【问题标题】:HttpSession using servlets使用 servlet 的 HttpSession
【发布时间】:2014-03-31 10:21:58
【问题描述】:

我正在尝试创建一个 5 秒的 http 会话。 这是代码

protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    // TODO Auto-generated method stub
    HttpSession sess=req.getSession(true);;
    String fname=req.getParameter("fname");
    String lname=req.getParameter("lname");
    PrintWriter pw=resp.getWriter();
    pw.println("Hello"+" "+fname+" "+lname);
    long stime=sess.getCreationTime();
    long ltime=sess.getLastAccessedTime();
    if((ltime-stime)>5000)
    {
        pw.println("Session Expires");
        sess.invalidate();
    }
    pw.close();
}

问题是当我在 5 秒后第一次重新加载页面时,会话不会过期,但在第二次重新加载页面后会话过期。请指导....

【问题讨论】:

  • 检查ltime-stime、ltime和stime的值。
  • 因为你总是在创建一个新会话,所以你总是得到一个新会话。

标签: java servlets web-applications httpsession


【解决方案1】:

您可以设置会话到期时间:

// set 5 seconds
// default is 1800 seconds (30 minutes)
sess.setMaxInactiveInterval(5);

在这段时间过后,会话将自动过期。

【讨论】:

  • 你不能专门在服务器和客户端之间玩时间,他们计算的时间不同,每当超过限制时,在你再次刷新页面之前就不能再计算了。但是通过这种方式 - 就像我的回答一样,您将确保服务器保持时间记录并遵守它。
猜你喜欢
  • 2012-09-22
  • 1970-01-01
  • 2016-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多