0

私はこれを実装しようとしていました: http://geekswithblogs.net/GruffCode/archive/2010/10/28/detecting-the-file-download-dialog-in-the-browser.aspx

localhost/portal/myapp問題は、動的にurl: を持つページがあることです。そのページでaction属性が と等しいフォームを生成するlocalhost/servlet/myapp/generatexlsため、その URL を処理するサーブレットに Cookie を設定しています。問題は、後で の元のページで JavaScript から Cookie を読み取ろうとすることですが、localhost/portal/myappできません。Cookie の設定中にパスが に等しい場合/、幸いにもそれを読み取ることができます。それで、問題は、なぜ/私のクッキーへのパスを設定しないと元のURLで読み取れないのか、それが重要な理由と、パスがに設定されていない場合のクッキーの何が問題なのか、/フォームのアクションパラメータに暗黙的に設定されているのですか? ( /servlet/myapp/generatexls) だから読めないの?

4

1 に答える 1

1

最後に buff.writeTo 出力ストリームを実行してください!

ヘッダー設定は、応答にまだ何も書き込まれていない場合にのみ機能します。ヘッダーが最初に書き込まれるため。

疑問: file.close() がありません。すべて書き込まれますか。outStream.close() しないほうがいいかもしれません。多分 cookie.setPath("/")

コンテンツの長さヘッダーを設定するための file.length() があり、 file.writeTo を応答出力ストリームに実行すると、より良いでしょう。

于 2013-03-14T13:48:46.107 に答える