2011-07-30 10 views
0

ファイルのサーブレットへのアップロードを実行しました。今私は別のサーブレットに私を転送するいくつかのアクションを実行したい。私はこのアップロードされたデータからいくつかの文字列を生成しましたが、変数からその文字列をキャッチする別のサーブレットに投稿する必要があります。どうやってするの?変数内のサーブレットからサーブレットにデータを投稿するにはどうすればいいですか?

+0

あなたには問題があります。ビジネス・ジョブを別のサーブレットに委任することは、コードの匂いです。他のサーブレットは明らかに「あまりにも多く」実行しています。そのコードを別のJavaクラス(ドメインオブジェクト?)にリファクタリングして、両方のサーブレットでインポートして再利用するだけです。 – BalusC

答えて

3

あなたは次のサーブレットへの要求(サーバー側)を転送することができます

RequestDispatcher dispatcher = request.getRequestDispatcher("/nexturl"); 
dispatcher.forward(aRequest, aResponse); 

あなたのセッションオブジェクトにデコードされた変数を添付し、あなたがに転送サーブレットでそこからそれを取得することができます。 (サーブレットがあまりにもパラメータを指定して呼び出すことができるならば、良いと考え、パラメータを解析しようとしていない場合、または、変数のためのセッションを確認します(あなたがそれを使用するときにそれを削除)して。)

更新

それを追加し、あなたの変数を渡す方法として、HTTPセッションを使用するには:

HttpSession session = request.getSession(); 
session.setAttribute("name", "value"); 

、次のサーブレットでそれを取得:

HttpSession session = request.getSession(); 
String value session.getAttribute("name"); 
session.removeAttribute("name"); 

セッションは、サーブレットコンテナによって自動的に作成されます。セッションクッキーを使用して、同じブラウザセッションからの一連のHTTP要求にセッション状態をマップするとします。

+0

セッション変数をセッションに保存する代わりに(セッションパラメータが正しく管理されていないとわかりにくい問題を引き起こす可能性があります)、[HttpServletRequestラッパーを使用する]こともできます(http://codethink.no-ip.org/wordpress/archives/634)を使用して、文字列を標準パラメータとして2番目のサーブレットに渡します。 – aroth

+0

こんにちは私は正常に別のサーブラーにリダイレクトされました:)...今、変数名 "var"で別のサーブレットに文字列を投稿する方法を教えてください。私の2番目のサーブレットにはgetparameter( "var")があります。 haventどのセッションも... HttpServletRequestラッパーの使い方を説明できます:) –

+0

@Coder_sLaY、セッションの使い方の説明を更新しました。 (または、彼のコメントに与えられたURLを見てください) – rsp

関連する問題