Spring mvc controller session management. (Spring 2.5)
От: Rodnin  
Дата: 14.04.10 07:58
Оценка:
Озадачился вопросом менеджемента сессий для 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.

Резюме:
Поделитесь пожалуйста опытом, ссылками или просто размышлениями по данному вопросу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.