У меня есть этот контроллер
@Controller
@RequestMapping(value = "/login")
public class Login{
@RequestMapping
public ModelAndView mainPage(HttpServletRequest request){
request.getSession().setAttribute("testSession", "Session test");
return new ModelAndView("/login");
}
@RequestMapping(value = "/check")
public View check(HttpServletRequest request){
System.out.println(request.getSession(false)); //null
return new RedirectView("/login");
}
}
При доступе /login
я создаю сеанс и добавляю в него атрибут "testSession"
: request.getSession().setAttribute("testSession", "Session test");
На странице /login
есть это <form action="/login/check" method="post">
.
Вкл. /login/check
Я пытаюсь создать сеанс в /login
, но он пуст.
Почему сеанс не сохраняется между запросами?
P.S .: Мое приложение запускается на удаленном сервере с Tomcat и Apache в качестве реверсивного прокси, и я получаю доступ к своему приложению через https://mydom.com
UPDATE
Я создал контроллер для тестирования:
@Controller
@RequestMapping(value = "/sess")
public class TestSession{
@RequestMapping(method = RequestMethod.GET)
public void mainPage(HttpServletRequest request, HttpServletResponse response) throws IOException{
//get or create session
HttpSession session = request.getSession();
response.setContentType("text/html");
response.getWriter().println(session.getId());
}
}
При каждом запросе к /sess
печатается другой идентификатор.