Переменная сеанса не сохраняет значение в следующем запросе в Spring MVC controller - PullRequest
2 голосов
/ 15 июня 2011

У меня есть один контроллер широкого применения.

@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 голосов
/ 21 февраля 2012

HttpSession of требует, чтобы клиент, т.е. браузер, сохранял идентификатор сессии в cookie.Итак, cookie моего браузера отключен, поэтому каждый запрос приносил новый идентификатор сеанса

0 голосов
/ 15 июня 2011
if(method.equals("login"))
    {
        someClassObj.login(params);
        //which stores some value in session variable "somevar"
    }

Как он может хранить 'некоторое значение в переменной сеанса "somevar"', если вы не передаете объект Session или Request?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...