欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java中Servlet程序下載文件實例詳解

 更新時間:2021年02月19日 08:23:27   作者:小妮淺淺  
在本篇文章里小編給大家整理的是一篇關(guān)于java中Servlet程序下載文件實例內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。

對于一些普通的文件下載,想必大家都會去點擊默認的鏈接進行資料獲取。效率慢是一個方面,有時候下載的過程并不順序。在學(xué)習(xí)了python中的一些程序后,我們可以選擇使用Servlet進行文件的下載。下面我們先就Servlet進行簡單的說明,然后帶來有關(guān)的下載文件代碼實例。

1、說明

Servlet是Sun公司開發(fā)的用于交互式地瀏覽和生成數(shù)據(jù),生成動態(tài)Web的技術(shù)。狹義的Servlet是指Java語言實現(xiàn)的一個接口。但一般情況下,我們把實現(xiàn)了Servlet接口的Java程序叫做Servlet

2、使用servlet程序下載

//得到需要下載的文件
String path = this.getServletContext().getRealPath("/upload/9/1/圖片1.png");
File file = new File(path);
//讀取服務(wù)器本地的文件
FileInputStream in = new FileInputStream(file);
/**
 * 處理URL編碼問題
 */
String fileName = file.getName();
//對文件名進行URl編碼
fileName = URLEncoder.encode(fileName, "utf-8");
//判斷不同瀏覽器
String userAgent = request.getHeader("user-agent");
String filefix = null;
if(userAgent.contains("Trident")){
//IE
filefix = "filename="+fileName;
}else if(userAgent.contains("Firefox")){
//Firefox
filefix = "filename*="+fileName;
}else{
filefix = "filename="+fileName;
}
//告訴瀏覽器以下載方式打開資源
response.setHeader("Content-Disposition", "attachment;"+filefix);
//把本地文件發(fā)送給瀏覽器
byte[] buf = new byte[1024];
int len = 0;
while( (len=in.read(buf))!=-1 ){
response.getOutputStream().write(buf, 0, len);
}
//關(guān)閉
in.close();

到此這篇關(guān)于java中Servlet程序下載文件實例詳解的文章就介紹到這了,更多相關(guān)java中Servlet程序下載文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Maven如何修改打包文件名稱

    Maven如何修改打包文件名稱

    這篇文章主要介紹了Maven如何修改打包文件名稱問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java基礎(chǔ)之代理原理與用法詳解

    Java基礎(chǔ)之代理原理與用法詳解

    這篇文章主要介紹了Java基礎(chǔ)之代理原理與用法,結(jié)合實例形式詳細分析了java代理的概念、原理、用法及相關(guān)操作注意事項,需要的朋友可以參考下
    2020-02-02
  • 詳解如何將JAR包發(fā)布到Maven中央倉庫

    詳解如何將JAR包發(fā)布到Maven中央倉庫

    這篇文章主要介紹了詳解如何將JAR包發(fā)布到Maven中央倉庫,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Java ConcurrentHashMap用法案例詳解

    Java ConcurrentHashMap用法案例詳解

    這篇文章主要介紹了Java ConcurrentHashMap用法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java使用Spring Batch處理大規(guī)模數(shù)據(jù)的實踐分享

    Java使用Spring Batch處理大規(guī)模數(shù)據(jù)的實踐分享

    在處理大規(guī)模數(shù)據(jù)的場景中,批處理是一個非常常見且必要的操作,Java中的Spring Batch是一個強大的框架,能夠幫助我們高效地執(zhí)行復(fù)雜的批處理任務(wù),本文將帶大家了解如何使用Spring Batch處理大規(guī)模數(shù)據(jù),并通過代碼示例展示如何實現(xiàn)高效的批處理,需要的朋友可以參考下
    2024-10-10
  • SpringBoot整合Redis實現(xiàn)消息發(fā)布與訂閱的示例代碼

    SpringBoot整合Redis實現(xiàn)消息發(fā)布與訂閱的示例代碼

    能實現(xiàn)發(fā)送與接收信息的中間介有很多,比如:RocketMQ、RabbitMQ、ActiveMQ、Kafka等,本文主要介紹了Redis的推送與訂閱功能并集成Spring Boot的實現(xiàn),感興趣的可以了解一下
    2022-08-08
  • JavaWeb實現(xiàn)文件上傳與下載的方法

    JavaWeb實現(xiàn)文件上傳與下載的方法

    這篇文章主要介紹了JavaWeb實現(xiàn)文件上傳與下載的方法的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • Java Objects工具類原理及用法詳解

    Java Objects工具類原理及用法詳解

    這篇文章主要介紹了Java Objects工具類原理及用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • 實例詳解Java中ThreadLocal內(nèi)存泄露

    實例詳解Java中ThreadLocal內(nèi)存泄露

    這一篇文章我們來分析一個Java中ThreadLocal內(nèi)存泄露的案例。分析問題的過程比結(jié)果更重要,理論結(jié)合實際才能徹底分析出內(nèi)存泄漏的原因。
    2016-08-08
  • SpringBoot多數(shù)據(jù)源配置方式以及報錯問題的解決

    SpringBoot多數(shù)據(jù)源配置方式以及報錯問題的解決

    這篇文章主要介紹了SpringBoot多數(shù)據(jù)源配置方式以及報錯問題的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評論