java中Servlet程序下載文件實(shí)例詳解
對(duì)于一些普通的文件下載,想必大家都會(huì)去點(diǎn)擊默認(rèn)的鏈接進(jìn)行資料獲取。效率慢是一個(gè)方面,有時(shí)候下載的過(guò)程并不順序。在學(xué)習(xí)了python中的一些程序后,我們可以選擇使用Servlet進(jìn)行文件的下載。下面我們先就Servlet進(jìn)行簡(jiǎn)單的說(shuō)明,然后帶來(lái)有關(guān)的下載文件代碼實(shí)例。
1、說(shuō)明Servlet是Sun公司開(kāi)發(fā)的用于交互式地瀏覽和生成數(shù)據(jù),生成動(dòng)態(tài)Web的技術(shù)。狹義的Servlet是指Java語(yǔ)言實(shí)現(xiàn)的一個(gè)接口。但一般情況下,我們把實(shí)現(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編碼問(wèn)題 */String fileName = file.getName();//對(duì)文件名進(jìn)行URl編碼fileName = URLEncoder.encode(fileName, 'utf-8');//判斷不同瀏覽器String userAgent = request.getHeader('user-agent');String filefix = null;if(userAgent.contains('Trident')){//IEfilefix = 'filename='+fileName;}else if(userAgent.contains('Firefox')){//Firefoxfilefix = 'filename*='+fileName;}else{filefix = 'filename='+fileName;}//告訴瀏覽器以下載方式打開(kāi)資源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程序下載文件實(shí)例詳解的文章就介紹到這了,更多相關(guān)java中Servlet程序下載文件內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. jsp+mysql實(shí)現(xiàn)網(wǎng)頁(yè)的分頁(yè)查詢(xún)2. Docker 部署 Prometheus的安裝詳細(xì)教程3. JavaScript Tab菜單實(shí)現(xiàn)過(guò)程解析4. ThinkPHP5 通過(guò)ajax插入圖片并實(shí)時(shí)顯示(完整代碼)5. Python使用oslo.vmware管理ESXI虛擬機(jī)的示例參考6. IntelliJ IDEA設(shè)置條件斷點(diǎn)的方法步驟7. Ajax引擎 ajax請(qǐng)求步驟詳細(xì)代碼8. Android實(shí)現(xiàn)圖片自動(dòng)切換功能(實(shí)例代碼詳解)9. javascript設(shè)計(jì)模式 ? 建造者模式原理與應(yīng)用實(shí)例分析10. 存儲(chǔ)于xml中需要的HTML轉(zhuǎn)義代碼
