国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

JSP隱含對象response實現文件下載

2020-07-27 21:28:34
字體:
來源:轉載
供稿:網友

一.簡單介紹JSP隱含對象response實現文件下載

(1)在JSP中實現文件下載最簡單的方法是定義超鏈接指向目標資源,用戶單擊超鏈接后直接下載資源,但直接暴露資源的URL也會帶來一些負面的影響,例如容易被其它網站盜鏈,造成本地服務器下載負載過重。
(2)另外一種下載文件的方法是使用文件輸出流實現下載,首先通過response報頭告知客戶端瀏覽器,將接收到的信息另存為一個文件,然后用輸出流對象給客戶端傳輸文件數據,瀏覽器接收數據完畢后將數據另存為文件,這種下載方法的優點是服
務器端資源路徑的保密性好,并可控制下載的流量以及日志登記等。
二.兩種文件的下載方式
(1)二進制文件的下載
用JSP程序下載二進制文件的基本原理是:首先將源文件封裝成字節輸入流對象,通過該對象讀取文件數據,獲取response對象的字節輸出流對象,通過輸出流對象將二進制的字節數據傳送給客戶端。
1.把源文件封裝成字節輸入流對象
2.讀取二進制字節數據并傳輸給客戶端
代碼如下:

<%@ page contentType="application/x-download" import="java.io.*" %> <%  int status=0;  byte b[]=new byte[1024];  FileInputStream in=null;  ServletOutputStream out2=null;  try  {  response.setHeader("content-disposition","attachment; filename=d.zip");  in=new FileInputStream("c://tomcat//webapps//ROOT//d.zip");  out2=response.getOutputStream();  while(status != -1 )   {   status=in.read(b);   out2.write(b);   }  out2.flush();  }  catch(Exception e)  {  System.out.println(e);  response.sendRedirect("downError.jsp");  }  finally  {  if(in!=null)   in.close();  if(out2 !=null)   out2.close();  } %> 

(2)文本文件下載
文本文件下載時用的是字符流,而不是字節流。首先取得源文件的字符輸入流對象,用java.io.FileReader類封裝,再把FileReader對象封裝為java.io.BufferedReader,以方便從文本文件中一次讀取一行。字符輸出流直接用JSP的隱含對象out,out能夠輸出字符數據。

代碼如下:

<%@ page contentType="application/x-download" import="java.io.*" %><%  int status=0;  String temp=null;  FileReader in=null;  BufferedReader in2=null;  try  {  response.setHeader("content-disposition","attachment; filename=ee.txt");  response.setCharacterEncoding("gb2312");  in=new FileReader("c://tomcat//webapps//ROOT//ee.txt");  in2=new BufferedReader(in);  while((temp=in2.readLine()) != null )   {   out.println(temp);   }  out.close();  }  catch(Exception e)  {  System.out.println(e);  response.sendRedirect("downError.jsp");  }  finally  {  if(in2!=null)   in2.close();  } %> 

希望本文所述對大家學習JSP隱含對象response實現文件下載有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通化市| 锡林郭勒盟| 重庆市| 内黄县| 隆昌县| 永泰县| 临武县| 法库县| 四子王旗| 榆中县| 定西市| 泸西县| 贵定县| 太原市| 珲春市| 冕宁县| 柳州市| 富顺县| 邓州市| 桓台县| 大宁县| 类乌齐县| 巫溪县| 澄迈县| 安新县| 崇左市| 甘谷县| 阿拉善右旗| 义乌市| 东明县| 斗六市| 四子王旗| 固阳县| 德惠市| 辉南县| 浠水县| 恩施市| 临夏县| 柯坪县| 淮南市| 衢州市|