1

私のjspでは、誰かがクエリ結果をcsvにエクスポートしたいと考えています。フレームワークを使用できません。現時点では、プロセスは次のとおりです。

  1. ボタンを押して、サーブレットに移動します
  2. csvのデータを準備する
  3. csvを作成し、サーバーに保存します
  4. jspに戻り、アンカータグから作成したばかりのファイルをダウンロードさせます。

つまり、このファイルは後で破棄する必要があるため、サーバー上に作成したくありませんが、それでもユーザーに「名前を付けて保存」ウィンドウを表示したいと思います。それで、この結果を達成するために、たとえばOutputStreamオブジェクトをセッションに入れる方法はありますか?皆さん、ありがとうございました!

4

2 に答える 2

2

サーブレットは、あらゆるタイプのコンテンツを生成できます。したがって、ボタンをクリックしてサーブレットを実行するときは、その時点でサーブレットにファイルをクライアントに書き戻すだけです。Content-typeヘッダーを「text/csv 」に設定する必要があります(エンコードが正しく設定されていることを確認してください)。Content-Lengthヘッダーを設定する必要はありません。ブラウザはそれを処理できます。

サーブレットがブラウザにデータを返すと、ユーザーはファイルを保存するか、アプリケーションで開くように求められます。

于 2013-01-04T15:06:30.057 に答える
1

はい。ファイルを保存する必要はありません。セッションで保持し、メモリ内でに送信するだけOutputStreamです。メモリーを節約するために、一定時間後または配達後にゴミ箱に捨てます。

コンテンツタイプとコンテンツの配置を適切に設定します。これは、ブラウザが出力を正しく解釈し、ユーザーに出力を保存するか、適切なアプリケーションを起動するように求めることを意味します。

詳細については、このSOの回答を参照してください。

于 2013-01-04T14:54:43.383 に答える