360安全浏览器下载提交两次问题

来源:互联网 发布:营销软件破解版 编辑:程序博客网 时间:2024/05/01 20:27

开发的下载功能,其他浏览器正常下载,360浏览器则会报错,debug跟踪发现360提交了两次,导致第二次传值为NULL,导致报错。。。

最后想到的方法是360特殊处理,将第一次的值传入session中,第二次读取session就不会为空。

//获得session中的人员信息GlobalInput tG = (GlobalInput)session.getValue("GI");//生成文件名Calendar cal = new GregorianCalendar();String min=String.valueOf(cal.get(Calendar.MINUTE));String sec=String.valueOf(cal.get(Calendar.SECOND));String downLoadFileName = "清单_"+tG.Operator+"_"+ min + sec + ".xls";String filePath = application.getRealPath("f1print");String tOutXmlPath = filePath +File.separator+ downLoadFileName;System.out.println("OutXmlPath:" + tOutXmlPath);System.out.println(tG.Operator);String querySql = request.getParameter("Sql");if(querySql==null){//针对360浏览器下载会自动提交两次问题String tBatchno=(String)session.getAttribute("BatchNo");//如果SQL由JS生成,应该在session中直接存sql就可以querySql="select batchno,prtno,loginfo,other from xfyjlog where batchno='"+tBatchno+"'";System.out.println("360");session.removeAttribute("Batchno");}else{String tBatchno = request.getParameter("BatchNo");session.setAttribute("BatchNo", tBatchno);}querySql = querySql.replaceAll("%25","%");//设置表头String[][] tTitle = {{" 批次号","印刷号","日志信息","状态"}};//表头的显示属性int []displayTitle = {1,2,3,4};  //数据的显示属性int []displayData = {1,2,3,4};//生成文件CreateExcelList createexcellist = new CreateExcelList("");//指定文件名createexcellist.createExcelFile();String[] sheetName ={"list"};createexcellist.addSheet(sheetName);int row = createexcellist.setData(tTitle,displayTitle);if(row ==-1) errorFlag = true;createexcellist.setRowColOffset(row,0);//设置偏移if(createexcellist.setData(querySql,displayData)==-1)errorFlag = true;if(!errorFlag)//写文件到磁盘try{   createexcellist.write(tOutXmlPath);}catch(Exception e){errorFlag = true;System.out.println(e);}//返回客户端if(!errorFlag)downLoadFile(response,filePath,downLoadFileName);out.clear();out = pageContext.pushBody();
公司的老框架,这个是写在jsp中的。。。

0 0
原创粉丝点击