midp方因?yàn)闆]有cookie內(nèi)容,所以實(shí)現(xiàn) session tracking 需要在客戶端的每次請(qǐng)求中把取到的session id手工加入到請(qǐng)求頭中

1. 從response中獲取 cookie 里的session id的信息 在servlet中是通過(guò)注入JSESSIONID這個(gè)屬性來(lái)實(shí)現(xiàn)的

    String readCookie(HttpConnection conn) throws IOException {
  String key;
  String value;
  String[] substrs;
  
for (int i = 0; (key = conn.getHeaderFieldKey(i)) != null++i) {
   key 
= key.toLowerCase();
   
if (key.equals("set-cookie")) {
    value 
= conn.getHeaderField(i);
    substrs 
= StringUtil.split(value, ';');
    
for (int j = 0; j < substrs.length; j++{
     
if (substrs[j].toUpperCase().startsWith("JSESSIONID=")) {
      
return substrs[j];
     }

    }

   }

  }

  
return null;
 }


 

2. 請(qǐng)求頭處理 在httpConnection中手工注入 Sessionid 。 sessionid 通過(guò)在手機(jī)端調(diào)用readCookie方法獲取

 

if (mSession != null{
 conn.setRequestProperty(
"cookie", mSession);
}

 



3. 如果使用get方法通訊,那么服務(wù)器方不需要再做任何設(shè)定,  如果是post方法,經(jīng)試驗(yàn),則需要手工加入cookie

 

response.addCookie(new Cookie("JSESSIONID", request.getSession(true)
    .getId()));


這樣就可以象普通的web應(yīng)用一樣跟蹤管理會(huì)話了