这是一个检测用户浏览器的Cookie设置是否打开的一个小技巧。
技巧很简单,当servlet接收到一个请求时,先不处理这个请求,而是发送一个响应,在响应中包含一个cookie并且要求浏览器在接到这个响应后立即再重发上一个请求,并在请求中添加这个cookie,然后在servlet中检测浏览器第二次发的请求中是否有这个cookie,如果没有就说明这个浏览器不支持cookie,有就对这个请求进行应作的处理
<%
if(request.getParameter(“flag”)==null){
Cookie cookie = new Cookie(“cookiefoo”,on);
response.addCookie(cookie);
String nextUrl = request.getRequestURL + “?flag=1”;
out.println(“<META HTTP-EQUIV=Refresh CONTENT=0;URL=” + nextURL + “>”);
}
else{
Cookie[] cookies = request.getCookies();
boolean cookiefound = false;
if(cookies != null){
int length = cookies.length;
for(int i=0;i<length;i++){
Cookie cookie = cookies[i];
if(cookie.getName().equal(“cookiefoo”)&&cookie.getValue().equal("on")){
cookiefound = true;
break;
}
}
}
if(cookiefound){
out.println(“cookie is on”);
}
else{
out.println(“cookie is off”);
}
}
%>