2013-03-18 3 views
1

У меня есть два контроллера UserSignInController и PageNavigationController.I хочу поддерживать тот же HttpSession в обоих контроллерах, но я нашел сеанс diff на странице diff. Я также добавил @SessionAttributes («userDetails») в контроллере page.please посоветуйте мне, как я это создаю?Поддерживать такую ​​же сессию в контроллере весны

UserSignInController

@RequestMapping(value="/analyzeinternet1.html", method=RequestMethod.GET) 
    public ModelAndView getSocialMediaAdmin(HttpSession session, Model model) { 
     LOG.info(" session..." + session); 
     ModelAndView mv = null; 

     UserProfile up = (UserProfile) session.getAttribute("userDetails"); 
     if(up == null) { //Checking whether the user is already signed up or not. If not, the user is redirected to login page. 
      LOG.info("No user in session..."); 
      mv = new ModelAndView("redirect:/login.html"); 
     } else { 
      LOG.info("User in session..." + up); 
      mv = new ModelAndView("internetanalyze"); 
      model.addAttribute("userDetails", up); 
      session.setAttribute("userDetails", up); 
      mv.addObject("clientId", up.getUserId()); 
     } 

     LOG.info(mv); 
     return mv; 
    } 

PageNavigationController

@RequestMapping(value="/analyzeinternet.html", method=RequestMethod.GET) 
    public ModelAndView getAnalyzeInternet(HttpSession session, Model model) { 
     LOG.info("-----session..." + session); 
     //LOG.info("-----userprofile..." + userDetails); 
     ModelAndView mv = null; 
     up = (UserProfile) session.getAttribute("userDetails"); 
      LOG.info("User in session..." + up); 
      mv = new ModelAndView("internetanalyze"); 
      //mv.addObject("clientId", up.getUserId()); 
      return mv; 
    } 

и идентификатор сессии отличается и мой Перенаправление код

<a href="<%=request.getContextPath()%>/analyzeinternet.html"> 
+1

Не могли бы вы рассказать мне, что вы нашли? Поскольку я знаю, что все контроллеры являются singleton, поэтому нет проблем, что сеанс пересекает контроллеры. – OQJF

ответ

0

Вы хотите сказать, просматривать приложения с одной страницы на второй странице а вторая страница использует PageNavigationController, где вы не получаете на той же сессии? Как вы проверяете, не является ли его не тот же сеанс? Вы уверены, что настраиваете userDetails в сеансе?

Также проверьте правильность передачи cookie сеанса в запросе. Вы можете использовать консоль firebug или chrome для проверки значения cookie в ответе и заголовке запроса.

+1

У меня есть сеанс печати, и он получает значение diff.yeh. Я установил userprofiles в сеансе – Biswajit

+0

, пожалуйста, отлаживайте и файл cookie сеанса, и подтвердите –

+0

, он дает идентификатор сеанса diff в консоли – Biswajit

0

Я нашел ответ. Этот код написан в context.xml

<Context path="/sm" docBase="sm" 
     debug="5" reloadable="true" crossContext="true" cookies="false"> 

где печенье = «ложь», и это должно быть печенье = «истинный».

Смежные вопросы