您的位置:首页 > Web前端 > JavaScript

在jsp网页上加了超链接,具有下载功能

2014-01-14 15:01 190 查看
一开始,我往 <a href=""></a>这方面考虑,但是遇见很多问题:跳转,中文的文件不能下载等等。思前想后,决定换种思路:

有超链接的jsp页面:

 <div style="position:absolute; width:89px;  left: 20px; top: 100px;">
<a href="#" onclick="down();">下载插件</a>
<iframe id="ModifyCameraForm" name="ModifyCameraForm" src="about:blank"  style="display:none;" width="1" height="1"></iframe>
</div>

利用个隐藏的iframe ,在js中改变src 来进行后台处理

js:

function down(){
document.getElementById("ModifyCameraForm").src = "down.jsp"; 

}

down.jsp:

<%@page import="javax.tools.Diagnostic"%>

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>

<%@ page language="java" import="java.io.*" %>

<%@ page language="java" import="java.net.*" %>

   <%

      response.setContentType("application/x-download");//设置为下载application/x-download

      String filedownload = "/温州工商指挥平台环境配置.jar";//即将下载的文件的相对路径

      String filedisplay = "温州工商指挥平台环境配置.jar";//下载文件时显示的文件保存名称

      String filenamedisplay = URLEncoder.encode(filedisplay,"UTF-8");

      response.addHeader("Content-Disposition","attachment;filename=" + filenamedisplay);

      try

      {

          RequestDispatcher dis = application.getRequestDispatcher(filedownload);

          if(dis!= null)

          {

              dis.forward(request,response);

          }

          response.flushBuffer();

          out.clear();

          out = pageContext.pushBody();

      }

      catch(Exception e)

      {

          e.printStackTrace();

      }

      finally

      {

      }

%>

out.clear();

out = pageContext.pushBody(); 这两句话如果不加的话回报


getOutputStream() has already been called for this response java getOutputStream() 的错

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: