2011-06-15 71 views
2

我有應用程序範圍的單個控制器。會話變量在Spring MVC控制器中的下一個請求中不會持續存在值

@RequestMapping(method = RequestMethod.POST,value="services") 
@ResponseBody 
mwpWebServices(@RequestBody String data, HttpServletRequest request, HttpServletResponse response) throws JSONException, UnknownHostException, MongoException 

{ 
    HttpSession session = request.getSession(); 

    ...... 

    String method = jsonObj.getString("method"); 

    .... 

    if(method.equals("login")) 
    { 
     someClassObj.login(params);//which stores some value in session variable "somevar" 
    } 

    if(method.equals("other")) 
    { 
     System.out.println(session.getAttributes("somevar"));//coming null 
    } 
} 

現在的「數據」將收到JSON字符串 ,我會在解析爲JSONObject的,將看起來像 {「方法」:「登錄」,「動」:「驗證」,「PARAMS」:」有些數據「}

現在,當方法登錄

我調用另一個類的一些方法,而我通過其存儲一些值在會話

但是當請求到來時,會話varible下一次當會話對象不堅持價值...

回答

0

HttpSession需要客戶端,即瀏覽器將會話ID存儲在cookie中。 因此,我的瀏覽器的cookie關閉,這就是爲什麼每個請求都帶來新的會話ID

+0

錯誤地,我忘了在我的瀏覽器的cookie – 2012-02-21 12:23:23

0
if(method.equals("login")) 
    { 
     someClassObj.login(params); 
     //which stores some value in session variable "somevar" 
    } 

如果您不傳遞Session或Request對象,它如何在會話變量「somevar」中存儲'某些值?

+0

@我是通過會話登錄函數.forgot在此處提及它..sorry – 2011-06-15 11:39:19

+0

@Sean但是太會話變量來null我意思是說 – 2011-06-15 11:52:59

+0

@Ravi好吧,聽起來你會得到每個請求的新會話。您的客戶是否存儲/發送Cookie或以其他方式跟蹤會話? – 2011-06-15 11:56:50

相關問題