- - PR -
struts struts-config(scope=session)
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-11-10 18:23
ご返信ありがとうございます。 もし私がトンチンカンなこといってたら指摘してください。 以前行った書き込みなんですが(↓)の場合に、情報をどう保持するかという議論です。 (本当は違う話だったのですが、今はそういう話になっています。) 今以下のような処理の中で、セッション保持を使用したいとおもっていたのですが、 登録画面 ↓ ボタン押下 : ☆セッション内にActionFormの情報を保持 ☆ 登録内容の確認画面 ↓ ボタン押下 実際の登録処理 :セッション内のActionFormの情報を使って登録 ※登録後、セッション内のActionForm情報は不要 | ||||||||||||
|
投稿日時: 2003-11-10 18:50
toppoです。
この掲示板の引用のやり方がいまだによく分からないのですが。 (まさかコピペですか?) 登録内容の確認画面に対応するActionFormは 無いのですか? そうすればrequestスコープにのみ 値を受け渡しつつ登録までいけると思うのですが。 ちなみに、sessionに大きなオブジェクトを保持する場合、 仮にサーバーがクラスタ構成になっていたりすると さらに致命的ですよ。 以上です。 | ||||||||||||
|
投稿日時: 2003-11-10 18:58
コピペじゃないです、メッセージの下にある引用をクリックして投稿するんですよ。 requestスコープにのみ値を受け渡しつつ登録まで・・といっているのは、どういうことですか? requestスコープなのに、hiddenで埋め込まずにそのようなことができるのですか? (基本的な質問でしたらすみません・・・) --- クラスタのときはもちろんそうですが、その場合はプログラム側での考慮というよりまた違う仕組みのなかで回避する問題ではないですか? | ||||||||||||
|
投稿日時: 2003-11-10 22:26
どうもtoppoです。 早速引用してみました。 サーブレットにはセッション管理機能があり、 そのスコープとして アプリケーション, セッション, リクエスト, ページ があります。 これは元ネタのStrutsというより Servlet/JSPの話なので 詳しい説明は、いろいろ調べればネタの少ないテーマではないはずですよ。 クラスタのときにsession同期のコストを抑える方法は sessionの利用制限をする以外に効率的な方法は知らないので スミマセン。私は、プログラムレベル(物理設計レベル)で 考慮しないと致命的なボトルネックになる 恐れがある問題だと認識しています。 | ||||||||||||
|
投稿日時: 2003-11-10 23:04
サーブレットのスコープについては大変理解しているつもりです。 私の質問は、toppoさんがおっしゃったrequestスコープにのみで情報を引き回すということに関してどうやるんですか?(HTML上に情報を格納せずに、(Hiddenを使わずに)どうやるんですか?)ってことを 聞きたかったんです。 toppoさんの回答次第では私のStrutsでの考えかたが大きく間違っている可能性があるため確認をしたかったんです。 | ||||||||||||
|
投稿日時: 2003-11-11 00:21
こんばんわ
私もこの話に非常に興味があります。 登録画面 ↓ ボタン押下 :セッション内にActionFormの情報を保持 登録内容の確認画面 ↓ ボタン押下 実際の登録処理 :セッション内のActionFormの情報を使って登録 ちなみにこれはstruts-config.xmlの scope属性がrequestなら無理な気がしますが。 struts-config.xmlの内容があるならみして いただけますか? | ||||||||||||
|
投稿日時: 2003-11-11 09:34
--------------前置き noriとroushiさんがおっしゃっている、 登録画面 ↓ ボタン押下 :セッション内にActionFormの情報を保持 登録内容の確認画面 ↓ ボタン押下 実際の登録処理 :セッション内のActionFormの情報を使って登録 の実現方法は?と言う話とは、関係ありません。 あくまで、 >情報がクライアント側で持たれるんですから安全ではないですよね。 >パスワードがHiddenで埋め込まれるとなると・・・どうでしょう? への返答です。 --------------前置き終わり えっと、toppoさんもおっしゃっていますが、requestにする事と、hiddenにする事を ごっちゃにされていますよ。 スコープをリクエストにするって言う事は、 <action path="/aaa" name="ActionFormName" type="ActionName" scope="request"> って書く事であり、これによって、aaa.doのみで、ユーザーの入力値をActionFormName から取得できる、と言うことです。 当然これはSession変数では無いので、次のリクエスト時には内容は消えます。 ただし、Sessionスコープではないので、確実にaaa.doのリクエストが終了した時点で 解放されますし、そもそもnoriさんのような事で思い悩む必要がありません。 ここから、さらに必要な情報があれば、Sessionなり何なりに入れてあげれば良いという 話だと思います。(少なくとも私はそういうつもりです) と言う事で、hiddenの話はまったく関係しません。 とりあえず、これで(この件は)ご理解いただけたでしょうか? | ||||||||||||
|
投稿日時: 2003-11-11 09:50
さて、requestとhiddenの話が終ったので、^^;
ですが、struts-config.xmlのみで解決するのは無理ですよね? ActionFormは消えますから。 私が設計しているWEBアプリケーションは、そう言った設計は排除している のですが、もしやるとしたら、以下のような感じでしょうか。 ・ActionFormをSessionスコープにしちゃう。 ※全部が全部そうじゃないとは思いますが、いまんとこ。 このスレッド自体、話題が錯綜したため、 ・noriさんの最初の投稿 ⇒Sessionじゃ無くって、requestにしたらどう? ・noriさんの2番目(total3番目)の投稿 ⇒ >登録画面 >↓ ボタン押下 :セッション内にActionFormの情報を保持 >登録内容の確認画面 >↓ ボタン押下 >実際の登録処理 :セッション内のActionFormの情報を使って登録 じゃ、requestじゃ無理ジャン! って流れになってますからね。 | ||||||||||||
