これまでのところ、Java の Httpsession の概念を理解しています。
HttpSession ses = req.getSession(true);
リクエストに応じて、セッション オブジェクトを作成します。
setAttribute("String", object);
'String' をバインドし、値を Session オブジェクトにバインドします。
getAttribute("String");
指定された文字列に関連付けられたオブジェクトを返します。
私が理解できないのは、次のようなセッションオブジェクトを作成し、
HttpSession ses = req.getSession(true);
呼び出して名前を設定していることsetAttribute("String", object);
です。ここで、このコードはサーバー内に存在します。すべての人がログインしようとすると、サーバーで同じコードが実行されます。setAttribute("String", object);
このメソッドでは、文字列値は定数です。したがって、作成された各セッション オブジェクトは、私が提供した同じ文字列によってバインドされます。彼のセッションを検証するために文字列を取得しようとすると、またはログアウト アクションが実行されている間getAttribute("String");
に、同じ定数文字列値が返されます (私は正しいですか?? 実際にはわかりません。実行のロジックを考えているだけです)。 . では、どうすれば無効化できるのでしょうか。
このタイプの図は、Web のすべてのチュートリアルで見ました。その属性を設定する実際の方法ですか?または、実際のアプリケーション開発者は、「文字列」フィールドに変数を指定して動的に設定します。
(ie. session.setAttribut(userName, userName); //Setting the String Dynamically.. I dono is it right or not.)
そして私の最後の質問は
WebContext ctx = WebContextFactory.get();
request = ctx.getHttpServletRequest();
上記の2行は何をしますか?ctx & request には何が保存されますか?
HttpSession ses = req.getSession(true);
新しいセッション手段を作成します。ses に格納されている値。