簡體   English   中英

JSP:在客戶端上保存文件而不將其存儲在服務器上

[英]JSP: save a file on client without storing it on server

在我的jsp中,有人想將查詢結果導出到csv。 不能使用框架。 目前,這是一個過程:

  1. 按下按鈕,轉到servlet
  2. 為csv准備數據
  3. make csv並保存到服務器
  4. 回到jsp,讓他們從錨標簽下載新制作的文件。

事實是,我不想在服務器上創建這個文件,因為我必須在之后處理它,但我仍然想給用戶“另存為”窗口。 那么,是否有一種方法,例如在會話中放置一個OutputStream對象來實現這個結果? 謝謝你們!

servlet可以生成任何類型的內容。 因此,當您單擊按鈕以運行servlet時,只需讓servlet將文件寫回客戶端。 您需要將Content-type標頭設置為“ text / csv ”(並確保正確設置編碼)。 您不需要設置Content-Length標頭; 瀏覽器可以處理。

當servlet將數據返回給瀏覽器時,將提示用戶保存文件或使用應用程序打開它。

是。 您無需保存文件。 只需在會話中保留它並將其在內存中發送到OutputStream 我會在給定時間后或分娩后將其丟棄以節省內存。

適當地設置內容類型和內容配置。 這意味着瀏覽器會正確解釋輸出並提示用戶保存輸出或啟動相應的應用程序。

有關詳細信息,請參閱此SO答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM