会话变量不会在Spring MVC控制器中的下一个请求中保留值

时间:2011-06-15 11:02:16

标签: json spring session 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 {“method”:“login”,“action”:“Auth”,“params”:“some data”}

现在当方法登录时

我调用另一个类的方法,我传递会话对象,在会话中存储一些值

但是当下次请求到来时,会话变量不会保持值......

2 个答案:

答案 0 :(得分:0)

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

如果你没有传递Session或Request对象,如何在会话变量“somevar”中存储'某些值?

答案 1 :(得分:0)

HttpSession要求客户端,即浏览器将会话ID存储在cookie中。 所以我的浏览器的cookie已关闭,这就是每个请求带来新会话ID的原因