JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简单集成教程
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简单集成教程
JS文件在最下面:
引入
<script src="${path}/js/jquery-2.0.3.min.js"></script>
<script src="${path}/js/jquery.cookie.min.js"></script>
html部分 遮盖层
<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部分
<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项目 可以自己看着改
// //生成返回cookiee
Cookie cookie=new Cookie("downloadCookie","coursewareExcelDownloadFile");
HttpServletResponse response = super.getResponse();
response.addCookie(cookie);

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

jquery.cookie的js
/*! 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))}});
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简单集成教程的更多相关文章
- springboot实现防重复提交和防重复点击
背景 同一条数据被用户点击了多次,导致数据冗余,需要防止弱网络等环境下的重复点击 目标 通过在指定的接口处添加注解,实现根据指定的接口参数来防重复点击 说明 这里的重复点击是指在指定的时间段内多次点击 ...
- vue防重复点击(指令实现)
快速点击按钮会重复多次调用接口,防止出现这样的情况 全局定义,方便调用 新建plugins.js export default { install (Vue) { // 防重复点击(指令实现) Vue ...
- JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(三),多线程断点下载
一 前言 本篇博客是<JWebFileTrans(JDownload):一款可以从网络上下载文件的小程序>系列博客的第三篇,本篇博客的内容主要是在前两篇的基础上增加多线程的功能.简言之,本 ...
- js中使用showModelDialog中下载文件的时候,闪一下后无法下载
在js中使用showModelDialog中下载文件的时候,会因为showModelDialog自动设置target为_self导致下载文件“只会闪一下”就消失掉 在吧target设置为_blank后 ...
- .net C# 利用Session防重复点击防重复提交
<body> <form id="form1" runat="server"> <div> < ...
- 前后台交互实现点击超链接通过指定的 url 去网络或者文件服务器下载文件
前台 VUE 界面: <el-table-column prop="attachment" align="center" label="附件详情 ...
- Java中文件的上传与下载
文件的上传与下载主要用到两种方法: 1.方法一:commons-fileupload.jar commons-io.jar apache的commons-fileupload实现文件上传,下载 [u ...
- 《手把手教你》系列技巧篇(五十六)-java+ selenium自动化测试-下载文件-上篇(详细教程)
1.简介 前边几篇文章讲解完如何上传文件,既然有上传,那么就可能会有下载文件.因此宏哥就接着讲解和分享一下:自动化测试下载文件.可能有的小伙伴或者童鞋们会觉得这不是很简单吗,还用你介绍和讲解啊,不说就 ...
- 《手把手教你》系列技巧篇(五十七)-java+ selenium自动化测试-下载文件-下篇(详细教程)
1.简介 前边几篇文章讲解完如何上传文件,既然有上传,那么就可能会有下载文件.因此宏哥就接着讲解和分享一下:自动化测试下载文件.可能有的小伙伴或者童鞋们会觉得这不是很简单吗,还用你介绍和讲解啊,不说就 ...
- Java Web实现使用浏览器从服务器下载文件(后台)
Java Web实现 使用浏览器从服务器下载文件. 下面实现两种情况的下载,需求如下: 需求(一):1.用户在页面填写表单. 2.填写完成后,选择下载,将表单内容发往后台. 3.后台根据内容生产一个文 ...
随机推荐
- gitlab/github 设置 SSH
最近项目要部署到另一台机器上,故要重新 git clone 一下 一开始只是简单的设置 config 里的 user.name 和 user.email,以为就可以 clone(邮箱账户拥有项目的权限 ...
- win32-改变Combox的编辑框和下拉列表的背景颜色和文本字体颜色
只需要调用WM_CTLCOLORLISTBOX和WM_CTLCOLOREDIT来分别处理编辑框和下拉列表. Combox的创建: int xpos = 100; // Horizontal posit ...
- java基础字符串---02
String 概述 String类在java.lang包下,所以使用的时候不需要导包 String类代表字符串,java程序中的所有字符串文字(例如"abc")都被实现为此类的实例 ...
- 使用原生 cookieStore 方法,让 Cookie 操作更简单
前言 对于前端来讲,我们在操作cookie时往往都是基于document.cookie,但它有一个缺点就是操作复杂,它并没有像localStorage那样提供一些get或set等方法供我们使用.对与c ...
- Redis哨兵(sentinel)
目录 前言 原理 架构图 下载 命令 配置 启动 查看 Sentinel(哨兵)配置 常用命令 Q&A Redis主从配置异常解决:Error condition on socket for ...
- MindSponge分子动力学模拟——使用MDAnalysis工具进行后分析(2024.02)
技术背景 分子动力学模拟(Molecule Dynamics Simulation,MD),本质上是一门采样技术.通过配置力场参数.拓扑结构和积分器,对一个给定的体系不断的采样,最终得到一系列的轨迹. ...
- Unity3D常用方法
1.StartCoroutine(Thread1()) 启动协程运行Thread1()方法. 注意是协程,不是线程,详情见:https://www.jianshu.com/p/6d923cb0c900 ...
- 【Azure 微服务】新创建的Service Fabric集群,如何从本地机器上连接到Service Fabric Explorer(Service Fabric状态/错误查看工具)呢?
问题描述 当在Azure中成功创建一个Service Fabric Cluster 服务后,我们能够在它的Overview页面中发现 Service Fabric Explorer的终结点,但是打开后 ...
- 【Azure Spring Cloud】部署Azure spring cloud 失败
问题描述 使用Azure CLI指令部署Azure Spring Cloud项目失败,错误消息提示没有安装"azure.storage.blob"模块 问题分析 根据错误提示,是p ...
- 【Azure 媒体服务】记录一个简单的媒体视频上传到Media Service无法播放问题
问题描述 从本地上传到Azure Media Service Portal的视频,并且新增定位符后,无法播放.但是上传的其他视频是可以的.疑惑中!! 问题自查 自查发现,是视频的文件名中有个特殊符号. ...