前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >servlet实现文件下载功能

servlet实现文件下载功能

作者头像
Java学习
发布2018-04-18 10:53:35
1.1K0
发布2018-04-18 10:53:35
举报
文章被收录于专栏:java学习java学习
第一步:首先在你的项目新建一个文件夹存放一些可以下载的文件(本教程一一张图片为例子)

第二步:写servlet(DownloadServlet.java)

packagecom.example.servlet;

importjava.io.File;

importjava.io.IOException;

importjava.io.InputStream;

importjava.io.OutputStream;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

/**

* Servlet implementation classDownloadServlet

*/

publicclass DownloadServlet extends HttpServlet {

privatestaticfinallongserialVersionUID = 1L;

/**

* @see HttpServlet#doGet(HttpServletRequestrequest, HttpServletResponse response)

*/

protectedvoiddoGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODOAuto-generated method stub

response.setContentType("text/html;charset=utf-8");

//通知浏览器下载的方式打开

response.addHeader("Content-Type", "application/octet-stream"); // 限制类型

String s1="我爱java.png";

String s2 = new String(s1.getBytes("GBK"),"ISO-8859-1");//解决乱码

response.addHeader("Content-Disposition", "attachment;filename="+s2);// 下载后的文件名

//通过文件流读取文件

File file= new File("/File/11.jpg");

InputStreamin=getServletContext().getResourceAsStream(file.toString());

//获取response对象的输出流

OutputStreamout=response.getOutputStream();

byte[] buffer =newbyte[1024];

int len;

while((len =in.read(buffer)) !=-1){

out.write(buffer,0,len);

}

in.close();

out.close();

}

/**

* @see HttpServlet#doPost(HttpServletRequestrequest, HttpServletResponse response)

*/

protectedvoiddoPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODOAuto-generated method stub

doGet(request, response);

}

}


第三步:配置web.xml

<?xml version="1.0"encoding="UTF-8"?>

<web-app version="2.5"

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<display-name></display-name>

<servlet>

<servlet-name>DownloadServlet</servlet-name>

<servlet-class>com.example.servlet.DownloadServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>DownloadServlet</servlet-name>

<url-pattern>/DownloadServlet</url-pattern>

</servlet-mapping>

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

</web-app>


第四步:编写jsp页面(index.jsp)

<%@ page language="java" import="java.util.*"pageEncoding="UTF-8"%>

<%

Stringpath = request.getContextPath();

StringbasePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">

<title>My JSP 'download.jsp' starting page</title>

<meta http-equiv="pragma"content="no-cache">

<meta http-equiv="cache-control"content="no-cache">

<meta http-equiv="expires"content="0">

<meta http-equiv="keywords"content="keyword1,keyword2,keyword3">

<meta http-equiv="description"content="This is my page">

<!--

<link rel="stylesheet"type="text/css" href="styles.css">

-->

</head>

<body>

<a href="DownloadServlet">

文件下载

</a>

</body>

</html>


第五步:Tomcat部署项目!运行下载!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档