Озадачился вопросом менеджемента сессий для Spring MVC и наткнулся на ситуацию что его просто не существует.
На официальном форуме Spring mvc есть пост содержащий следующее "Think of the abstractions — a controller represents the application, an HttpSession represents the user. So where should the user's state be stored?" --
http://forum.springsource.org/archive/index.php/t-20049.html
Встречаются даже ссылки следующего содержания:
http://stackoverflow.com/questions/1968764/spring-tutorial-on-session-management
----
public ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors) {
HttpSession session = request.getSession();
User user =
(ArrayList)session.getAttribute("userInfo");
if (user == null) {
user = new ArrayList();
session.setAttribute("userInfo", user);
}
//other code here
return new ModelAndView(new RedirectView(getSuccessView()));
}
----
Что-то мне подсказывает что данный подход — не самый удачный.
Как альтернативу всему этому можно использовать scope="session", но этого делать не хочется (раздувать сессию в частности) ввиду того что к разрабатываемой системе выдвигаются очень высокие требования по производительности и потреблению ресурсов.
Как идеальный вариант мне представляется следующая ситуация:
Object command или некоторый вспомогательный объект -- определять в spring-servlet.xml , выставлять ему соответствующие skope и использовать в контроллере, при этом уйти от ручного использования httpSession.
Резюме:
Поделитесь пожалуйста опытом, ссылками или просто размышлениями по данному вопросу.