したがって、このサーブレットが要求されたときに、ユーザーのセッションにJavaオブジェクトを追加するサーブレットを取得しようとしています。しかし、サーブレットが次のページにリダイレクトした後、オブジェクト、代わりにnull
オブジェクトを取得します。
オブジェクトをHttpSession(サーブレット内)に追加するには、次のようにします。
request.setAttribute("object", obj);
次に(JSPで)取得しようとします。
Object obj = request.getAttribute("object");
それでは、どのようにしてobjをnullにしないのでしょうか?
更新:私もこれを何も試していない:
HttpSession session = request.getSession();
session.setAttribute("object", obj);
jSPで次のようにします。
Object obj = request.getSession().getAttribute("object");
どちらの方法でもnullが返されます。
オブジェクトをセッションに追加するのではなく、リクエストに追加します。
必要なのは:
HttpSession session = request.getSession();
session.setAttribute("MySessionVariable", param);
サーブレットには、データを保存できる4つのスコープがあります。
これらを必ず理解してください。詳細については こちら
sessionではなく、requestに追加してください。
HttpSession session = request.getSession();
session.setAttribute("object", object);
また、JSPでスクリプトレットを使用しないでください。代わりに [〜#〜] el [〜#〜] を使用してください。 object
にアクセスするために必要なのは${object}
だけです。
JSPテクノロジーバージョン2.0の主な機能は、式言語(EL)のサポートです。式言語を使用すると、JavaBeansコンポーネントに格納されているアプリケーションデータに簡単にアクセスできます。たとえば、JSP式言語を使用すると、ページ作成者は、単純な変数の場合は
${name}
、ネストされたプロパティの場合は${name.foo.bar}
などの単純な構文を使用してBeanにアクセスできます。
ここでは、HttpRequest
またはHttpSession
を使用して実行できます。そして、あなたの問題はJSP内にあると考えてください。
内部サーブレットを使用する場合は、以下を実行します。
Object obj = new Object();
session.setAttribute("object", obj);
または
HttpSession session = request.getSession();
Object obj = new Object();
session.setAttribute("object", obj);
リクエストまたはセッションを使用して属性を設定した後、次を使用してJSPでアクセスし、
<%= request.getAttribute("object")%>
または
<%= session.getAttribute("object")%>
あなたの問題はJSPにあるようです。
スクリプトレットを使用する場合は、次のようにする必要があります。
<%
Object obj = request.getSession().getAttribute("object");
out.print(obj);
%>
または、次のように式を使用できます。
<%= session.getAttribute("object")%>
または、次のようにELを使用できます。${object}
または ${sessionScope.object}
要求オブジェクトはセッションではありません。
セッションオブジェクトを使用して保存する場合。セッションがリクエストに追加され、リクエスト間でデータを保持する必要がありました。セッションは以下から取得できます
HttpSession session = request.getSession(true);
その後、セッションでsetAttributeまたはgetAttributeを使用できます。
Jspセッションに関する最新のチュートリアルは次のとおりです。 http://courses.coreservlets.com/Course-Materials/pdf/csajsp2/08-Session-Tracking.pdf