如何下載jsp文件(jsp頁面下載文件)

本文目錄一覽:

如何下載jsp文件?

一般情況下不會,一般的web程序都會控制這方面的下載,除非有bug或者是用其它一些軟體

JSP通過超鏈接下載文件

JSP頁面點擊超鏈接彈出文件下載,代碼如下:

%

String path = request.getContextPath();

String basePath = request.getScheme()+”://”+request.getServerName()+”:”+request.getServerPort()+path+”/”;

%

//然後

a href =”%= basePath %/upload/aa.doc }” target=”_blank”下nbsp;nbsp;載/a

註:%= basePath %獲取部署JSP項目的根目錄,/upload/aa.doc/是根目錄uploadaa.doc文件,根據需求修改即可。

如何把網站上的一個jsp文件下載下來

你只能下載頁面上的代碼 ,不能下載後台的代碼的!後台在人家伺服器上!你是通過客戶端向伺服器傳送數據,在人家伺服器上處理的!所以你只能下載前端的東西!下載下來也就是了靜態的網頁

jsp 文件上傳和下載

1.jsp頁面

s:form action=”fileAction” namespace=”/file” method=”POST” enctype=”multipart/form-data”

!– name為後台對應的參數名稱 —

s:file name=”files” label=”file1″/s:file

s:file name=”files” label=”file2″/s:file

s:file name=”files” label=”file3″/s:file

s:submit value=”提交” id=”submitBut”/s:submit

/s:form

2.Action

//單個文件上傳可以用 File files,String filesFileName,String filesContentType

//名稱要與jsp中的name相同(三個變數都要生成get,set)

private File[] files;

// 要以File[]變數名開頭

private String[] filesFileName;

// 要以File[]變數名開頭

private String[] filesContentType;

private ServletContext servletContext;

//Action調用的上傳文件方法

public String execute() {

ServletContext servletContext = ServletActionContext.getServletContext();

String dataDir = servletContext.getRealPath(“/file/upload”);

System.out.println(dataDir);

for (int i = 0; i files.length; i++) {

File saveFile = new File(dataDir, filesFileName[i]);

files[i].renameTo(saveFile);

}

return “success”;

}

3.配置上傳文件臨時文件夾(在struts.xml中配置)

constant name=”struts.multipart.saveDir” value=”c:/temp”/

文件下載

1.下載的url(到Action)

a href=”${pageContext.request.contextPath}/file/fileAction!down.action”下載/a

2.struts.xml配置

package name=”file” namespace=”/file” extends=”struts-default”

action name=”fileAction” class=”com.struts2.file.FileAction”

!– 下載文件配置 —

!–type 為 stream 應用 StreamResult 處理–

result name=”down” type=”stream”

!–

不管實際類型,待下載文件 ContentType 統一指定為 application/octet-stream

默認為 text/plain

param name=”contentType”application/octet-stream/param

!–

默認就是 inputStream,它將會指示 StreamResult 通過 inputName 屬性值的 getter 方法,

比如這裡就是 getInputStream() 來獲取下載文件的內容,意味著你的 Action 要有這個方法

param name=”inputName”inputStream/param

!–

默認為 inline(在線打開),設置為 attachment 將會告訴瀏覽器下載該文件,filename 指定下載文

件保有存時的文件名,若未指定將會是以瀏覽的頁面名作為文件名,如以 download.action 作為文件名,

這裡使用的是動態文件名,${fileName}, 它將通過 Action 的 getFileName() 獲得文件名

param name=”contentDisposition”attachment;filename=”${fileName}”/param

!– 輸出時緩衝區的大小 —

param name=”bufferSize”4096/param

/result

/action

/package

3.Action

//Action調用的下載文件方法

public String down() {

return “down”;

}

//獲得下載文件的內容,可以直接讀入一個物理文件或從資料庫中獲取內容

public InputStream getInputStream() throws Exception {

String dir = servletContext.getRealPath(“/file/upload”);

File file = new File(dir, “icon.png”);

if (file.exists()) {

//下載文件

return new FileInputStream(file);

//和 Servlet 中不一樣,這裡我們不需對輸出的中文轉碼為 ISO8859-1

//將內容(Struts2 文件下載測試)直接寫入文件,下載的文件名必須是文本(txt)類型

//return new ByteArrayInputStream(“Struts2 文件下載測試”.getBytes());

}

return null;

}

// 對於配置中的 ${fileName}, 獲得下載保存時的文件名

public String getFileName() {

String fileName =”圖標.png”;

try {

// 中文文件名也是需要轉碼為 ISO8859-1,否則亂碼

return new String(fileName.getBytes(), “ISO8859-1”);

} catch (UnsupportedEncodingException e) {

return “icon.png”;

}

}

jsp實現文件的下載

%@pagelanguage=”java” import=”java.io.*,java.net.*” contentType=”application/x-msdownload” pageEncoding=”UTF-8″%%

//關於文件下載時採用文件流輸出的方式處理:

//加上response.reset(),並且所有的%後面不要換行,包括最後一個;

String url = request.getParameter(“url”);

System.out.print(url);

int k = url.lastIndexOf(“\\”);

String url1=url.substring(k+1,url.length());

response.reset();//可以加也可以不加

response.setContentType(“application/x-download”);

String filedownload = url;

String filedisplay = url1;

filedisplay = URLEncoder.encode(filedisplay,”UTF-8″);

response.addHeader(“Content-Disposition”,”attachment;filename=” + filedisplay);

OutputStream outp = null;

FileInputStream in = null;

try

{

outp = response.getOutputStream();

in = new FileInputStream(filedownload);

byte[] b = new byte[1024];

int i = 0;

while((i = in.read(b)) 0)

{

outp.write(b, 0, i);

}

out.clear();

out = pageContext.pushBody();

outp.flush();

}

catch(Exception e)

{

System.out.println(“Error!”);

}

finally

{

if(in != null)

{

in.close();

in = null;

}

if(outp != null)

{

outp.close();

outp = null;

}

}

%

原創文章,作者:WPGHU,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/316086.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
WPGHU的頭像WPGHU
上一篇 2025-01-09 12:14
下一篇 2025-01-09 12:14

相關推薦

  • vue下載無後綴名的文件被加上後綴.txt,有後綴名的文件下載正常問題的解決

    本文旨在解決vue下載無後綴名的文件被加上後綴.txt,有後綴名的文件下載正常的問題,提供完整的代碼示例供參考。 一、分析問題 首先,需了解vue中下載文件的情況。一般情況下,我們…

    編程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • 為什麼用cmd運行Java時需要在文件內打開cmd為中心

    在Java開發中,我們經常會使用cmd在命令行窗口運行程序。然而,有時候我們會發現,在運行Java程序時,需要在文件內打開cmd為中心,這讓很多開發者感到疑惑,那麼,為什麼會出現這…

    編程 2025-04-29
  • Python將矩陣存為CSV文件

    CSV文件是一種通用的文件格式,在統計學和計算機科學中非常常見,一些數據分析工具如Microsoft Excel,Google Sheets等都支持讀取CSV文件。Python內置…

    編程 2025-04-29
  • Python zipfile解壓文件亂碼處理

    本文主要介紹如何在Python中使用zipfile進行文件解壓的處理,同時詳細討論在解壓文件時可能出現的亂碼問題的各種解決辦法。 一、zipfile解壓文件亂碼問題的根本原因 在P…

    編程 2025-04-29
  • Python如何導入py文件

    Python是一種開源的高級編程語言,因其易學易用和強大的生態系統而備受青睞。Python的import語句可以幫助用戶將一個模塊中的代碼導入到另一個模塊中,從而實現代碼的重用。本…

    編程 2025-04-29
  • Python合併多個相同表頭文件

    對於需要合併多個相同表頭文件的情況,我們可以使用Python來實現快速的合併。 一、讀取CSV文件 使用Python中的csv庫讀取CSV文件。 import csv with o…

    編程 2025-04-29
  • Python寫文件a

    Python語言是一種功能強大、易於學習、通用並且高級編程語言,它具有許多優點,其中之一就是能夠輕鬆地進行文件操作。文件操作在各種編程中都佔有重要的位置,Python作為開發人員常…

    編程 2025-04-29

發表回復

登錄後才能評論