饼干产生一些随机值
问题描述:
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
- 如果(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;
}
}
%>
进行使用