戯言

つらつらと気づいたことを書いていきます。人狼とか。

スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Servlet、JSPはマルチスレッドなのか


いまさらだけど、人狼では共有リソースへの同時アクセスが多発するので、マルチスレッド、排他処理の情報を整理しておく。

・変数の宣言やメソッド宣言時に使用する<%! %>タグは、JSPがコンパイルされるとServletのインスタンス変数として展開される。

・特に指定しない限りServletはマルチスレッドモデルで実行される
http://www.atmarkit.co.jp/fjava/rensai2/webopt04/webopt04.html

・Servletのインスタンス変数はスレッド間で共有される
http://www.atmarkit.co.jp/fjava/rensai/smartj05/smartj05_2.html
スポンサーサイト

DWRでServletContextを取得する方法


こんな感じでできました。
import javax.servlet.ServletContext;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;

WebContext wctx = WebContextFactory.get();
ServletContext sctx = wctx.getServletContext();
人狼では、村や村人のステータス状態は、全参加者で共有する必要があるので、アプリケーションスコープで格納します。
アプリケーションスコープを利用する際に必要になるのが、ServletContextです。POJOをウリにしているDWRからどのようにServerContextを取得するのか調べてみたら、DWRで提供されているWebContext経由で取り出せました。

ServerContextを得られたら、変数の取り出しはgetAttribute(Object)、セットはsetAttribute("識別名",Object)でできます。

HttpSessionもこのように取得できます。

HttpSession session = wctx.getSession();

DWRの使い方、サンプル


今日は、プログラムの構成をちょっと考えただけで終了。その時見つけたDWR関係で役に立ちそうなリンクたち。いずれ、またお世話になると思います。

●チャット作成で学ぶWebリモーティング
http://www.hakkaku.net/articles/20071003-17

●第4回 DWRで今日から楽々Ajax
http://itpro.nikkeibp.co.jp/article/COLUMN/20070406/267692/?ST=develop&P=1

●java/DWR - いがっちの覚書
http://beck.boo.jp/pukiwiki/java/DWR/
DWRの最小限の事だけ書いてある。さくっとDWRを使ってみたいときに便利。

●DWRはAjaxアプリを作りたいJava開発者にお勧め
http://www.atmarkit.co.jp/fjava/rensai4/myeclipse02/myeclipse02_1.html
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。