0

私は、サーブレットと対話するアンドロイドアプリを持っています。ログインはセッション化されており、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 を返します

4

2 に答える 2

1
String cookie = CookieManager.getInstance().getCookie("http://mydomainname.com");

この接続の Cookie を取得し、接続にこの Cookie を追加すると、接続のセッションが提供されます。

于 2013-04-03T18:07:33.307 に答える
0

....;jsessionid=xxx のような URL でセッション ID を送信してみてください。

于 2013-04-02T14:43:16.347 に答える