私は、サーブレットと対話するアンドロイドアプリを持っています。ログインはセッション化されており、sessionid と sessionname を生成してアプリに渡すことができます。このように、ログインページでセッションIDとセッション名を設定しています
session.setAttribute("sessionid",session.getId());
session.setAttribute("sessionname","name");
私はアプリからそれらのものを受け取っています。しかし、私がするときのサーブレットで
String id = session.getAttribute("sessionid");
返しますnull
。
これはどのように発生し、どうすれば解決できますか?
アップデート:
後続のリクエストでは、sessionid と sessionname を httppost のヘッダーとして送信しています。
このような。
sessionname has the sessionname value received from the server.
and sessionid has the sessionid value received from the server.
httppost.setHeader("Session",sessionname+"="+sessionid);
サーバー側では、このようなものを取得しています
String session = request.getHeader("Session");
String sessionname = session.substring(0,session.indexOf("="));
String sessionid = session.substring(session.indexOf("="));
これで、これらの変数に sessionname と sessionid の両方が含まれるようになりました。次のようにセッション オブジェクトに対してチェックします。
if(session.getAttribute("sessionname").equals(sessionname) && session.getAttribute("sessionid").equals(sessionid))
これは私がnullを取得する場所です。取得した変数ではなく、セッションオブジェクトメソッドに対して、
getAttribute("sessionname") and getAttribute("sessionid")
null を返します