下载excel,excel是服务器动态生成,没有URL,所以不能用《a》

现在要实现下载excel功能,但excel不是存放在硬盘的,而是服务器Java生成的workbook。试标签的href,但是href只能输入文件路径。
现在我需要的是:前端点击一下,然后到达服务器的 excelExport.do方法里面,方法里生成workbook,在传送excel到前端,前端弹出下载对话框,然后下载。 我已经会生成excel,只是不知道怎么传送给前端。急!

你这个问题有很多解决办法,第一个:没必要弹出下载提示,点击后生成excel直接输出,实现下载,以下是参考代码

             response.setContentType("application/msexcel;");                
            response.setHeader("Content-Disposition", new String(("attachment;filename="+"error.xls").getBytes("GB2312"), "UTF-8"));  

            File f = new File("d:/20121211165820140_err.xls");  
            //File f = new File(targetFolder.getPath()+File.separator+fName);  
            FileInputStream in = new FileInputStream(f);  
            byte b[] = new byte[1024];  
            int i = 0;  
            ServletOutputStream out = response.getOutputStream();  
            while((i=in.read(b))!=  -1){  
                out.write(b, 0, i);  
            }  
            out.flush();  
            out.close();  
            in.close();  

第二种:保留下载提示,生成excel后把它保存到服务器然后再把地址传给前台,不推荐这种方法,就像脱裤子放屁一样

 File path=new File(Util.DOWNLOAD+"导出Excel");//创建文件夹 
 if(!path.exists()) { 
 path.mkdirs();//不存在该路径则自动生成            }
String path1 = Util.DOWNLOAD+"/导出Excel"+File.separator+filename+".xls";  
FileOutputStream fileout = new FileOutputStream(path1); 
wb.write(fileout);
fileout.flush(); 
fileout.close(); 
return name+".xls"

HTML中:
window.location.href = path;//path就是返回的name+".xls"

java生成的为什么没有url?就是你jsp获得请求并且返回文件的那个http资源作为你的url

需要使用a标签,传递也就是下载的过程,把你生成的excel转化成流,写到response中。

java生成的,后台的话一般是servlet或者是action,你直接把访问他们就可以啊,访问他们,同样是在完成文件传送,都是流在处理数据,一样的。
1.以前你访问的直接是文件在服务器中的资源链接,访问的时候,浏览器会将文件从文件流中读取下来,保存到本地
2.现在用java写,你后台访问要么是servlet要么是action,直接访问他们,他们也是在返回相应的数据给你,处理都是一样的。

服务器使用respons输出
http://blog.csdn.net/je_ge/article/details/53414092

重点是我前端不知道怎么写,谁能告诉我前端怎么写,《a》href不能直接写方法的url.

你后端用的是什么框架,springmvc吗?a标签herf能访问方法的 href="<%=basePath%>/这里还要补全/excelExport.do"
下面的代码放在html里面,目的是自动获取地址,开发时等于"localhost:8080"
<%
String basePath = request.getContextPath();
%>

可以用js修改标签的href;
读取excel后wkb.write(output);