我创建了一个简单的servlet,它将一个随机数存储为cookie id,并在点击“新身份”时使用#c; cookie id应该改变,但问题是id没有改变。以下是我的代码,
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Cookies extends HttpServlet
{
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out=response.getWriter();
Cookie coki[]=request.getCookies();
Cookie tokenCookie=null;
if(coki!=null)
{
for(int i=0;i<coki.length;i++)
{
if(coki[i].getName().equals("token"))
{
tokenCookie=coki[i];
break;
}
}
}
String resetParam=request.getParameter("resetParam");
if(tokenCookie==null || (resetParam!=null && resetParam.equals("yes")))
{
Random rnd=new Random();
long cookieid=rnd.nextLong();
out.println("Welcome. A new token "+cookieid+" is now established");
tokenCookie =new Cookie("token",Long.toString(cookieid));
tokenCookie.setComment("Cookie named token to identity user");
tokenCookie.setMaxAge(-1);
tokenCookie.setPath("/ServletPractice/Cookies");
response.addCookie(tokenCookie);
}
else
{
out.println("Welcome back. Your token id is "+tokenCookie.getValue()+"");
}
String requestURLSame=request.getRequestURL().toString();
String requestURLNew=request.getRequestURL()+"?requestParam=yes";
out.println("Click <a href="+requestURLSame+">here</a> to browse with same identity");
out.println("Click <a href="+requestURLNew+">here</a> to browse with new identity");
out.close();
}
}
当我在Chrome浏览器中运行上面的servlet时,会显示 如果我点击&#34;新身份&#34;的链接显示的ID不会更改,但字符串会更改为&#34;欢迎&#34;到&#34;欢迎回来&#34;。
请指导我。 提前谢谢。