0

私は J2EE の初心者 (Java のことではありません) で、質問があります。いくつかのチュートリアルを読みましたが、まだ少しぼんやりしています。これが状況です。

データベースに保存されているデータの html 表現を生成する jsp を継承しました。特定のリクエストパラメータが渡された場合、html 表現の生成に加えて、データの代替表現 (pdf 形式) も生成し、投稿を介してユーザーに返すように変更する必要があります。リクエストパラメータにも指定されるurl。したがって、私がやりたいこと (これら 2 つの追加パラメーターが指定されている場合) は、最初に HTML 表現を返し、次に PDF ビューを生成してクライアントにポストする役割を担う別の jsp / サーブレットを呼び出すことです。

私の混乱は、追加の処理で最初のjspがブロックされず、PDFがクックされている間でもクライアントがHTMLビューを受け取るように、最初のjspから新しいjspに制御を渡す方法です。これは意味がありますか?

現時点での私の計画は、jsp の一番下にあるスクリプトレットのパラメータをチェックし、それが「true」の場合は、apache HttpClient を使用してリクエストを jsp / サーブレット (同じ Web アプリケーションで実行されている) にポストすることです。 PDF を生成します。次に、そのサーブレットは HttpClient を使用して、完成した製品をクライアントに送り返します。これが本当にこれを行う正しい方法なのか、それともうまくいくのかさえわかりません。そのため、この質問を投稿しています。コメントや提案をいただければ幸いです。

ありがとう!

4

1 に答える 1

0

HTML 出力だけを生成し、PDF を生成する 2 番目のサーブレットへのリンクを出力のどこかに配置する方がよいと思います。このようにして、ユーザーが本当に PDF バージョンを取得したい場合は、提供されたリンクをクリックして PDF を取得できます。

ユーザーが HTML バージョンを取得しようとしたときに PDF を生成する必要がある場合は、要求を JMS キューに配置して、適切な結果を PDF バージョンで生成し、それらを一時的な場所に保存するとよいでしょう。ユーザーが PDF バージョンのダウンロード リンクをクリックすると、(JMS を介して生成された) 結果をフェッチし、結果として送り返すだけです。

于 2013-09-21T06:23:22.773 に答える