t100のプログラミング脱出作戦

自分のプログラミング脳をプログラムにして、いつかプログラミングから脱出してやるぞっ!とか夢見ながら、日々プログラム作っていく 百野 貴博 の日記です!今は、屋号『百蔵。』として、Silverlight・WPFを追跡中です! (2007/09/30)
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
【--/--/-- --:--】 | スポンサー広告 | トラックバック(-) | コメント(-) top↑
Wicketで、リクエストがポストバックされたかどうかを知るには?
Wicketで、現在のリクエストがポストバックされたものかどうかを調べていたのですが、、、
(いわゆる、.net で言うところの isPostBack プロパティ相当の機能です)

どうもプロパティという形では無いようです。
ただ、WebPageのコンストラクタが最初のリクエストのときにのみ呼ばれているようなので、この特性が変わりに使えそうです。

WicketのWebページの処理サイクル(ラウンドロビン)は、おそらく以下じゃないかと思います。
#ちゃんと調べてなくてすみません。

1.ユーザーがページを要求します。(Http Get)
2.Wicket(Reqest Cycle)は、対象のWebPageのインスタンスを生成します。
3.レスポンスが返されます。
4.ユーザーによって、ページがサーバーにポストされます。(ポストバック)
5.Wicketは、対象のWebPageのインスタンスをセッションから検索します。
  #インスタンスが見つからない場合、期限切れ扱いとなります。
6.インスタンスが見つかった場合は、ページクラス上の各コンポーネントのイベントが呼びだされます。(onSubmit等)
7.・・・続く


#詳しい処理フローは、org.apache.wicket.request.AbstractRequestCycleProcessorのprocessEventsメソッド でデバッグすると参考になるかもしれません。



そうです。
Wicketは、セッションにページが保存されていることが前提でラウンドロビンを実行しているのです。(たぶん)


なので、処理の記述場所としては以下のようになるんじゃないかと思います。

・ページの初期化(初期表示)の情報は、WebPageのコンストラクタに記述する。
・ポストバックされた際の処理は、各コンポーネントのイベントに記述する。

うーん・・・。なるほどー。

大量ユーザーからのリクエストさばこうとしたら、メモリ不足にならないのだろうか・・・。
あと、戻るボタン対策とかどうなってるんかな・・・。












管理者にだけ表示を許可する


トラックバックURL:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。