当前位置: 代码迷 >> Java Web开发 >> 用<a>标签做了一个文件下载,为何点一次,servlet会被执行两次
  详细解决方案

用<a>标签做了一个文件下载,为何点一次,servlet会被执行两次

热度:1453   发布时间:2016-04-16 22:05:31.0
用<a>标签做了一个文件下载,为什么点一次,servlet会被执行两次?
写了一个最简单的文件下载

点击<a>超链接向servlet发送一个请求,然后下载啊文件。
可是每次该servlet都会被访问两次,不知道是什么情况

JSP:
<a href="down?path=xxx.mp3">下载</a>


Servlet:


//用的jspsmartupload插件,关键代码如下,每次都会输出两次‘我被访问了’
public void doPost(HttpServletRequest request, HttpServletResponse response)
{
System.out.println("我被访问了");
SmartUpload su = new SmartUpload();
su.initialize(this.getServletConfig(), request, response);
su.setContentDisposition(null);
su.downloadFile("/sound/"+request.getParameter("path"));
}



还有一个问题:点击超链接后,浏览器弹出了下载窗口,这个时候我点击下载窗口中的取消,后台会报错:
org.apache.catalina.connector.ClientAbortExceptionjava.io.IOException: APR error: -730053

这个要怎么处理呢?
------解决方案--------------------
a标签的href属性中的url带参数在火狐下控制台网络显示只发送一次,但后台会执行两次,ie下正常,url后无参数两种浏览器都只执行一次。
------解决方案--------------------
使用onclick,调用方法写在js函数里面
  相关解决方案