0

乱数を Cookie ID として保存する単純なサーブレットを作成しました。「新しい ID」をクリックすると 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ブラウザで上記のサーブレットを実行すると、「新しいID」のリンクをクリックすると、表示されるIDは変更されませんが、文字列は「ようこそ」から「ようこそ」に変わります。

親切に私を案内してください。前もって感謝します。

4

0 に答える 0