[英]Why is my cookie value not set?
我在Tomcat 7服務器上執行以下Java Servlet代碼。 應該計算來自單個瀏覽器的請求。 必須使用Cookie而不是使用SessionAttributes來完成。 碼:
@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。我在做什么錯?
嘗試比較這樣的字符串:
if(c.getName().equals("count"))
與==
測試比較相同的字符串,很可能您正在處理恰好具有相同內容的兩個不同的字符串。
之后,您會發現它可能仍然不起作用:無法保證Cookie的順序,因此您可能希望查找獲得的最大值,而不是僅記住您看到的最后一個Cookie值...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.