serlet怎么实现文件下载
admin
2023-08-01 11:46:15
0

之前没怎么用过这个,这次项目中用到了,于是总结一下:

应该说主要注意三方面:

1、写一个servlet

2、在web.xml中配置这个servlet

3、页面上调用这个servlet

第一:

写一个servlet,当然要继承javax.servlet.http.HttpServlet,重写post或者get方法(看需要),这个servlet的思想就是将要下载的文件写到文件流中去,而这个文件输出流就是HttpServletResponse对象的输出流,如下所示:

public class DownloadServlet extends HttpServlet{
 
 
 public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
 {
  try
  {
   String downFilename=request.getParameter("curfile");
   String filepath=request.getParameter("path");
        response.setContentType("text/plain");
        response.setHeader("Location",downFilename);
        response.setHeader("Content-Disposition", "p_w_upload; filename=" + downFilename);
        OutputStream outputStream = response.getOutputStream();
        InputStream inputStream = new FileInputStream(filepath+downFilename);
        byte[] buffer = new byte[1024];
        int i = -1;
        while ((i = inputStream.read(buffer)) != -1) {
         outputStream.write(buffer, 0, i);
        }
        outputStream.flush();
        outputStream.close();
  }catch(FileNotFoundException e1)
  {
   System.out.println("没有找到您要的文件");
  }
  catch(Exception e)
  {
   System.out.println("系统错误,请及时与管理员联系");
  }
    }
 
 
 public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
 {
  doPost(request,response);
 }

}

web.xml配置:


  download
  com.dichain.common.tools.DownloadServlet
 


  download   
  /Download
 

jsp中调用servlet弹出一个下载对话框:

window.open ('Download?curfile='+curfile+'&path='+path,'newwindow','height=30,width=40,top='+yy+',left='+xx+',toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no');

相关内容

热门资讯

山西:深耕数智化 产业添活力 智能工厂是实现智能制造的核心载体,是制造业数字化转型、智能化升级的主阵地。日前,省工信厅公布2026...
外媒称中国空军全球第二,国防部... 财联社7月9日电,国防部新闻发言人陈曦大校7月9日下午就近期涉军问题发布消息。记者:近期,运-20飞...
2026年618手机选购终极攻... 一年一度的618大促已经拉开帷幕,对于想要在3000-4000元这个黄金价位段换新机的朋友来说,这无...
联储证券斩获新锐财富经纪商君鼎...   财富管理行业步入全新发展阶段,行业转型节奏不断加快,传统经纪业务向综合财富服务升级成为主流趋势,...
科技改变生活:AI与物联网如何... 科技正以前所未有的 speed 渗透进我们生活的每一个角落, 从智能手机到智能家居, 从无人驾驶到远...
6G时代离我们还有多远 当5G的网络仍在各行各业持续铺开时,6G的概念已经悄然登上舞台。从科研机构到设备厂商,从智能制造到智...
iOS 27代码曝光!苹果将适... 7月9日消息,日前,苹果推送了iOS 27第三个测试版,由开发者挖掘系统代码发现了两组全新车企识别代...
女大学生适合用什么手机推荐|2... 换手机这件事,对于在校女生来说往往面临两个核心问题:选哪款机型,以及去哪里买才靠谱。不少人把精力都花...
Meta全新自研图像模型来了!... 智东西 编译 | 茄子 编辑 | 程茜 智东西7月9日消息,7月7日Meta正式发布首款由超级智能实...
华为Mate 90系列有望今秋... 【iMobile爱科技资讯】在上个月的HDC开发者大会上,华为正式发布了鸿蒙7操作系统,在更早的5月...