JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简单集成教程

 

JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简单集成教程  

JS文件在最下面:

引入

1
2
<script src="${path}/js/jquery-2.0.3.min.js"></script>
<script src="${path}/js/jquery.cookie.min.js"></script>

  

html部分 遮盖层

1
2
3
4
<div id="loding" style="position: fixed;font-weight:400;font-size:21px;color:#FFFFFF;z-index:200;width: 100%;height: 100%;text-align:center;line-height:600px; background: rgba(0,0,0,0.4);display: none;">
<img style="vertical-align:middle" src="${path }/image/loding/lodingsafe.gif"  />
<span >正在导出中请稍后...</span>
</div>   

  

JS部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<script type="text/javascript">
             
    //下载监测timer
     function initDownloadCheckTimer(){
        configDownloadCheckTimer = window.setInterval(function() {
             
            var cookieValue = getCookie("downloadCookie");
            if (cookieValue === "coursewareExcelDownloadFile") {
                $('#loding').css('display','none');
                finishDownload() ;
            }
        }, 1000);
     }
 
     function finishDownload() {
        window.clearInterval(configDownloadCheckTimer);
        $.removeCookie('downloadCookie');
         
     }
     function getCookie(cookieName) {
         var strCookie = document.cookie;
         var arrCookie = strCookie.split("; ");
         for(var i = 0; i < arrCookie.length; i++){
             var arr = arrCookie[i].split("=");
             if(cookieName == arr[0]){
                 return arr[1];
             }
         }
         return "";
     }
function mySubmit(){
          
         $.removeCookie('downloadCookie');
         $('#loding').css('display','block');
           initDownloadCheckTimer();
          
          
         var coursewares=document.getElementById("coursewares").value;
         
         if(coursewares == null || coursewares == ""){
                alert("必须填写ID");    //如果值为空,提示用户填写
                return;
        }else{//如果值不为空,提交表单
             window.location.href = "${path}/ssss_dddd.action?courseware="+coursewares;
 
            }
 
     }
</script>

  

后台部分 JSP项目 可以自己看着改

1
2
3
4
//        //生成返回cookiee
        Cookie cookie=new Cookie("downloadCookie","coursewareExcelDownloadFile");
        HttpServletResponse response = super.getResponse();
        response.addCookie(cookie);

  

 

 

遮盖层效果: 转圈的小图标 自己百度找一下

 

 

 

1
jquery.cookie的js
1
2
/*! jquery.cookie v1.4.1 | MIT */
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});

  

posted @   阿浩呗  阅读(1498)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示