Cookie ID不会更改

时间:2013-10-29 02:19:34

标签: java servlets cookies

我创建了一个简单的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;。

请指导我。 提前谢谢。

0 个答案:

没有答案