我在 Java Servlet 中使用 cookie。我将 cookie 的值设置为 0。每次用户按 F5 时,计数器增加 1,并将计数器显示给 HTML 文件。但是,该值返回 yes
,尽管我将其设置为数字。代码如下:
public class RepeatVisitor extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
boolean newbie = true;
Cookie[] cookies = request.getCookies();
Cookie returnVisitorCookie = null;
if (cookies != null) {
for (Cookie c : cookies) {
if (c.getName().equals("repeatVisitor")){
newbie = false;
returnVisitorCookie = c;
break;
}
}
}
int count = 0;
String title;
if (newbie) {
returnVisitorCookie = new Cookie("repeatVisitor", count+"");
returnVisitorCookie.setMaxAge(60 * 60 * 24 * 365);
response.addCookie(returnVisitorCookie);
title = "Welcome Aboard";
} else {
title = "Welcome Back";
count = Integer.parseInt(returnVisitorCookie.getValue());
count++;
returnVisitorCookie.setValue(count+"");
}
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String docType = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n";
out.println(docType + "<HTML>\n" + "<HEAD><TITLE>" + title + "</TITLE></HEAD>\n" + "<BODY BGCOLOR=\"#FDF5E6\">\n"
+ "<H1 ALIGN=\"CENTER\">" + title + "</H1>\n"
+ "<H2>Counter: " + returnVisitorCookie.getValue() + "</H2>"
+ "</BODY></HTML>");
}
}
错误:
java.lang.NumberFormatException: For input string: "yes"
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
java.lang.Integer.parseInt(Integer.java:580)
java.lang.Integer.parseInt(Integer.java:615)
RepeatVisitor.doGet(RepeatVisitor.java:35)
我不知道为什么。有什么想法吗?