JavaWeb-使用ServletContext下载文件
Posted 曾经啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb-使用ServletContext下载文件相关的知识,希望对你有一定的参考价值。
代码如下:
public class DownloadServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 获取文件存放路径 String filePath = this.getServletContext().getRealPath("/WEB-INF/classes/测试.txt"); // 获取文件名称 String fileName = filePath.substring(filePath.lastIndexOf("/") + 1); // 创建文件对象 File file = new File(filePath); // 创建文件输入流 FileInputStream in = new FileInputStream(file); // 设置响应头部信息,使浏览器能识别并弹出下载框 resp.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName,"utf-8")); // 创建文件输出流 ServletOutputStream out = resp.getOutputStream(); // 将文件读进缓冲区,并从流中输出 int len = 0; byte[] buffer = new byte[1024]; while ((len = in.read(buffer))>0) { out.write(buffer,0,len); } // 关闭输入输出流 in.close(); out.close(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
web.xml 配置:
<servlet> <servlet-name>download</servlet-name> <servlet-class>com.study.servletcontext.DownloadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>download</servlet-name> <url-pattern>/download</url-pattern> </servlet-mapping>
以上是关于JavaWeb-使用ServletContext下载文件的主要内容,如果未能解决你的问题,请参考以下文章