饼干产生一些随机值

问题描述:

JSP文件饼干产生一些随机值

<% 

       String stateforcookie=request.getParameter("stateforcookie"); 
       if(stateforcookie != null) { 
       Cookie cookies2 = new Cookie("statecookie",stateforcookie); 

       cookies2.setMaxAge(365 * 24 * 60 * 60); 
       response.addCookie(cookies2); 
       }     
       String state=request.getParameter("state"); 
       Cookie[] cookies2=null; 
       cookies2 = request.getCookies(); 
       out.print(cookies2); 

       if (state==null) { if(cookies2 != null) 
            state=cookies2[0].getValue(); } 
       if(cookies2[0].getValue() == null) { 
       %> 

<body onload="po(0);"> 
<% }else { %> 
<body onload="po(1);"> 
<% } %> 

<div id="popup"> 
<div id="contenttt"> 
<form method="post" action="home.jsp"> 
Choose Your State:<input id="popuptext" type="text" name="stateforcookie" /> 
<input id="popupclose" type="submit" value="submit" /> 
</form> 
</div>  
</div> 

的javascript:

<script type="text/javascript"> 
function po(i) { 

if(i==1){ 
$('#popup').hide("slow"); 
    } 
    else if(i==0){$('#popup').show("slow");} 
} 
$(function(){ 
    $('#popupclose').click(function(){ 

     $('#popup').hide("slow"); 

    }); 

}); 
</script> 

1.Here我试图存储的值的cookie,如果cookie是空会弹出一个窗口,文本框。如果cookie不为空,那么弹出窗口将不会显示。

但我面临的问题 - out.print(cookies2);它打印: -

[Ljavax.servlet.http.Cookie; @ 1d6bff7

  1. 如果(cookies2 [0] .getValue()== NULL)抛出空指针异常.. 即使在删除所有浏览数据后,我也得到相同的错误

没有为cookie分配值,当它为空时不能进行比较,因此不会执行弹出窗口。对于第一时间cookies2将为空,它将引发空指针异常

如果(cookies2!= NULL){ 如果 (cookies2 [0] .getValue()!= NULL) {} }

我修改了,试试用弹出应this.You for循环来获取存储在cookie中值就像我下面

<% 

      String stateforcookie=request.getParameter("stateforcookie"); 
     out.println(stateforcookie); 
     Cookie cookies2=null; 
     Cookie[] cookies1=null; 
      if(stateforcookie != null) { 
      cookies2 = new Cookie("statecookie",stateforcookie); 

      cookies2.setMaxAge(365 * 24 * 60 * 60); 
      response.addCookie(cookies2); 

      } 

      String state=request.getParameter("state"); 

      cookies1 = request.getCookies(); 

      if(cookies1 != null) 
      for (int i = 0; i < cookies1.length; i++) { 
       if (cookies1[i].getName().equals("statecookie")) { 
       out.println(cookies1[i].getValue()); 
       state=cookies1[i].getValue(); 
       session.setAttribute("statecookie",state); 
       break; 
       } 
      } 

      %> 
进行使用