【问题标题】:JSP hit counter with cookies [closed]带有 cookie 的 JSP 计数器 [关闭]
【发布时间】:2013-05-29 18:18:57
【问题描述】:

我正在做一个学校项目,其中包含一个使用 cookie 的计数器。我曾经让计数器在每次刷新时将递增值传递给 bean 中的变量,但有人告诉我,这是一个糟糕的解决方案。 此任务的规范很明确:

  • 创建命中计数器
  • 使用 cookie 来执行此操作
  • 设置 cookie 的过期日期

有人有解决办法吗?我对此一无所知..

感谢每个有用的答案。

【问题讨论】:

  • 有什么问题?你不知道创建cookie还是不知道设置过期日期?
  • 我不知道如何使用 cookie 来制作命中计数器。 (但我知道如何创建它并设置过期时间。)试图弄清楚如何使用它们来计算访问者...
  • 你不会在这里得到现成的解决方案。在这里,我们可以帮助解决您的错误、异常等
  • @NullpointerExceptionBuster :您可以即兴创作我发布的代码,浏览它和 Javadoc。
  • @Aniket :我不是在询问或寻找现成的解决方案,我只是在寻求灵感,为我指明正确的方向。

标签: java jsp servlets cookies counter


【解决方案1】:

您可以在 doXXX() 方法中尝试以下类似操作:

Cookie[] cookies = request.getCookies();
int count = 0;
for(Cookie cookie:cookies){
    if(cookie.getName().equals("www.yourDomain.com.HitCounter")){
        count = Integer.parseInt(cookie.getValue());
        count++;
        cookie.setValue(count+"");
    }
}
if(count == 0){
    Cookie cookie = new Cookie("www.yourDomain.com.HitCounter","1");
    cookie.setMaxAge(3600*10*24);// expire in 10 days.
    response.addCookie(cookie);
}

要了解 Servlets 中的 cookie,请访问Javadoc

【讨论】:

  • 谢谢 :) 但是过期时间不是设置在 10 小时吗? (3600 秒 - 1 小时)
  • 是的,那是错字..
猜你喜欢
  • 2016-09-04
  • 2015-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-22
相关资源
最近更新 更多