2013-12-16 180 views
0

我在Tomcat 7服务器上执行以下Java Servlet代码。它应该计算来自单个浏览器的请求。这必须使用Cookie来完成,而不是使用SessionAttributes。代码:为什么我的cookie值未设置?

@WebServlet("/") 
public class CookieTestServlet extends HttpServlet { 

    @Override 
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException { 
     Cookie[] cookies = req.getCookies(); 
     int count = 0; 

     if (cookies != null) { 
      for (Cookie c : cookies) { 
       if (c.getName() == "count") { 
        count = Integer.parseInt(c.getValue()); 
       } 
      } 
     } 
     ++count; 
     resp.addCookie(new Cookie("count", "" + count)); 
     System.out.println(count); 
    } 
} 

运行此多次(清爽的浏览器)的Tomcat控制台总是输出1.看来,无论我有多少请求发送cookie的值始终为0。我在做什么错后?

回答

3

尝试将字符串比较是这样的:

if(c.getName().equals("count")) 

==测试对于相同字符串,最有可能你在处理两个不同的字符串恰好有相同的内容比较。

之后,您会发现它可能仍然不起作用:无法保证cookie的顺序,因此您可能希望查找获得的最大值,而不是只记住最后一个cookie值看到...

+0

我忘了字符串比较在Java中...现在它很好,谢谢! – Keammoort