在html中单击锚点时调用文件下载servlet
Calling file download servlet on click of anchor in html?
我编写了一个文件下载servlet,并在web.xml中注册,如下所示。
<servlet>
<servlet-name>downloadFile</servlet-name>
<servlet-class>com.hibu.HibuProspector.FileDwonloadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>downloadFile</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
文件下载Servlet.java
public class FileDownloadServlet extends HttpServlet{
private static final int BYTES_DOWNLOAD = 1024;
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException{
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition",
"attachment;filename=SampleFile.xlsx");
ServletContext ctx = getServletContext();
InputStream is = ctx.getResourceAsStream("/SampleFile.xlsx");
int read=0;
byte[] bytes = new byte[BYTES_DOWNLOAD];
OutputStream os = response.getOutputStream();
while((read = is.read(bytes))!= -1){
os.write(bytes, 0, read);
}
os.flush();
os.close();
}
}
我在html页面中有一个链接,如下所示。点击链接,我需要下载文件。
<a class="button right" target="_blank">Download</a>
现在,我如何将下载servlet与锚点链接起来
有什么建议吗?
给web应用程序的根映射来执行特定操作不是一个好的做法,因此使用正确的servlet映射更新web.xml,如下所示:-
<servlet-mapping>
<servlet-name>fileDownload</servlet-name>
<url-pattern>/fileDownload</url-pattern>
</servlet-mapping>
则如下用新映射更新锚标签。(您应该在锚标记的href属性中提到url模式。)
<a class="button right" target="_blank" href="/fileDownload">Download</a>
这应该有效!!!
在web.xml 中给出正确的映射
<servlet-mapping>
<servlet-name>downloadFile</servlet-name>
<url-pattern>/downloadFile</url-pattern>
</servlet-mapping>
您只需要通过锚调用servlet
<a href="/downloadFile" class="button right" target="_blank">Download</a>
将映射更改为特定的:
<servlet-mapping>
<servlet-name>downloadFile</servlet-name>
<url-pattern>/download</url-pattern>
</servlet-mapping>
并指定a
标签的href
属性:
<a class="button right" target="_blank" href="/download">Download</a>
你可以阅读锚的规格#href标签:
该属性指定Web资源的位置,从而定义由该属性定义的当前元素(源锚点)和目标锚点之间的链接。
除href="/downloadFile"外,所有三个答案都是正确的省略'/'以生成-href="downloadFile"为我工作。
相关文章:
- asp.net网站文件下载历史记录
- Firefox,如何提交表单触发文件下载,但停留在网页上
- 什么's使用脚本标记调用文件和ajax之间的区别
- 包含的文件中引发引用错误..除非调用文件包含慢速代码
- Interent Explorer中的数据URI文件下载
- 将页面上的文本替换为 jQuery 并提示文件下载
- JavaScript文件下载
- 是否可以触发文件下载到用户的浏览器
- Javascript JSON 到 Excel 文件下载
- 使用Javascript将多个文件下载为zip文件或文件夹
- 巴比伦JS-场景从本地文件下载
- 文件下载html与错误处理FileNotFound
- Grunt-获取当前调用文件夹,而不是gruntfile当前文件夹
- 使用jQuery捕获站点范围内的文件下载
- 在WinJS中将文件下载到文件系统
- JQuery启动文件下载,然后运行一个函数
- Http 文件下载请求停止 JQuery ajax 调用
- MVC ActionResult调用文件下载时mouseup上的图像损坏
- 在html中单击锚点时调用文件下载servlet
- 通过ajax调用php下载文件