0

私は JSP を使用しており、クライアント コンピューターにフラット ファイル形式でダウンロードしたい複雑なシリアライズ可能なオブジェクトがあります。これはどのように行うことができますか?

ObjectOutputStream を使用してオブジェクトを JSP サーバーにローカルに保存することはできますが、オブジェクトを JSP サーバーにリモートで保存する必要があり、ローカル (クライアント ストレージなど) には保存しないでください。

オブジェクトがクライアント コンピューターにローカルに保存されたら、それを JSP サーバーにアップロードして、オブジェクトを開いたり読み込んだりできるようにしたいのですが、どうすればよいですか?

敬具、

ティム

4

2 に答える 2

0

あなたの問題は、バイナリ オブジェクトを http 経由で送信することです。

JSP コードで次のコード スニペットを使用できます。

response.setContentType("binary/octet-stream");
response.setHeader("Content-Transfer-Encoding", "binary");
response.setHeader("Content-Disposition","attachment; filename=myjavaobject.obj");

ObjectOutputStream out = new ObjectOutputStream(response.getOutputStream());
oos.writeObject(yourJavaObject); //Assuming yourJavaObject is the java object you want to send.
out.flush();
out.close();

yourJavaObjectであることを確認することを忘れないでくださいserializable

于 2013-10-01T11:55:40.417 に答える
0

JSP サーバーがネットワーク上の場所に自動的に書き込むことはできないと思います。これはセキュリティ上の制限であり、アプリケーションへの手動のリクエストなしでは不可能な場合があります。以下の戦略を使用することをお勧めします。

  1. クライアント マシン (ネットワーク上にあると仮定) で共有の場所を作成し、その場所をサーバーにマウントしてから、その場所にファイルを保存するように JSP をコーディングします。

  2. ファイルを JSP サーバーの場所に保存すると、FTP 転送スクリプトを記述してファイルをクライアント マシンに転送できます。ジョブ スケジューラを使用します (FTP 通信を確立する必要があります)。

  3. アプリケーションの Web サイトを使用してダウンロードできるようにアプリケーションをコーディングします (音楽ファイルがダウンロードされるように)。次に、クライアント側でプログラムを実行すると、アプリ サーバーに接続され、プログラムによってクライアント マシンにファイルが保存されます。

于 2013-10-01T10:49:03.357 に答える