戯言

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

スポンサーサイト


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

WebContextFactory.get()がnullを返す場合


DWRを利用している場合、ServletContext は次のように取り出せます。
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;

WebContext wctx = WebContextFactory.get();
ServletContext sctx = wctx.getServletContext();
HttpSession session = wctx.getSession();
ここで注意しないといけないのは、WebContextFactory.get()がnullを返す場合もあるって事です。WebContextFactory.get()は、自身の属すスレッドがDWRによって開始されていなかった場合には、nullを返します。DWRのクリエータ(dwr.xmlにとかって書いたらAjaxServiceです)のクラスがnewされて、そのクラス内から呼び出されれば問題ないです。まあ、DWRから始まったスレッドでなければ、WebContextFactory.get()なんて知らないのは当然といえば当然ですが。 別スレッドから、WebContextFactory.get()を取得しようとすると、nullが返って来て、ServletContext sctx = wctx.getServletContext();とかでコケます。

DWRのクリエータから別スレッドをnewした場合などは要注意です。
また、JSP内に記述したクリエータ以外のクラスなどからも当然呼び出せません。この場合はサーブレットですね。
スポンサーサイト

console.log


console.log()で、コンソールへのログ出力ができるんですね。

今まで、alert()で、デバッグしてた私って・・・。

JavaScriptのvar宣言


JavaScriptで、変数宣言のvarは付けても付けなくても変わらないと思ってました。

関数内でvarを付けるとprivate変数になり、varを付けないとグローバル変数になるということを初めて知りました。

今まで適当に使ってましたよ、はい。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。