1.后台设置cookie得值,一定在 文件流关闭之前
out.close();之前
OutputStream out = response.getOutputStream();out的类型
javax.servlet.http.Cookie status = new Cookie("updateStatus", "success"); //注意cookie添加的位置,在一定在文件flush之前,在关闭文件流之前。这里是声明cookie。
status.setMaxAge(2); //设置cookie生存周期
status.setPath("/");
response.addCookie(status); //把声明的cookie添加到客户端。
2.前台定时器
var time = null;
time = setInterval(function () { //定时器检测cookie ,通过cookie updateStatus 的值判断下载是否完成
var ck = getCookies("updateStatus"); //getCookies()方法是根据论坛资料自己搜索后写的,感谢csdn和提供资料的前辈,具体忘了哪位提供的啦。。。
if (ck == "success") //值为success时,即为下载(到本地)完成了。
{
$('#loadingModal').modal('hide');//遮罩层的隐藏
clearInterval(time);//清理定时器。
}
}, "1000") //每秒运行1次。
$('#loadingModal').modal('hide');//遮罩层的隐藏
3.前台js函数取cookie值
function getCookies(cookieKey) { //获取cookie[]并判断。参数cookieKey是指要获取的指定的cookie的name。返回值为指定了name的值,没有值则返回null。
var cookies = document.cookie.split(';'); //把cookie分开为[]。
for (var i = 0; i < cookies.length; i++) //遍历cookie[]。
{
var keyValues = cookies[i].split('='); //cookie是字符串形式的name1=value1通过分号';'联合起来的,
//所以是name1=value1;name2=value2;.;.;.;.;.
if (cookieKey == keyValues[0]) //第0个(第一个)是key
{
return unescape(keyValues[1]); //返回想要的key对应的value(key:value形式键值对)。
}
}
return null; //没有想要的值,返回null。
}
function getCookies(cookieKey) { //获取cookie[]并判断。参数cookieKey是指要获取的指定的cookie的name。返回值为指定了name的值,没有值则返回null。
var cookies = document.cookie.split(';'); //把cookie分开为[]。
for (var i = 0; i < cookies.length; i++) //遍历cookie[]。
{
var keyValues = cookies[i].split('='); //cookie是字符串形式的name1=value1通过分号';'联合起来的,
//所以是name1=value1;name2=value2;.;.;.;.;.
if (cookieKey == keyValues[0]) //第0个(第一个)是key
{
return unescape(keyValues[1]); //返回想要的key对应的value(key:value形式键值对)。
}
}
return null; //没有想要的值,返回null。
}