Springless Spring MVC

Сейчас я читаю Spring in Action 3rd edition и экспериментирую с Spring MVC. Все работает хорошо, пока я не попытался "портировать" мой пример веб-приложения на веб-приложение без состояния.

Чтобы определить, создан ли объект сеанса, я установил отладочный фильтр сервлета в / * URL-сопоставлении, который просто распечатывает req.getSession(false)и продолжайте цепочку.

Я попытался изменить область действия всех моих контроллеров, чтобы запросить наивность, но, конечно, сеанс все еще создается на странице / контроллере, который связывает модель с формой. Интересно, как добиться Spring State MVC без состояния? Мне пока не везет на учебники по этому вопросу.

2 ответа

Решение

Убедитесь, что все JSP используют

<%@page session="false" %>

иначе сеанс будет создан, как только JSP будет выполнен.

Случайное создание сеанса является одним из наиболее распространенных источников неверных отчетов об ошибках в Spring Security (отсюда часто задаваемые вопросы, на которые вы ссылались в своем комментарии выше).

Фильтр отладки Spring Security может быть полезен, если у вас возникают проблемы с созданием сессии. Он будет автоматически регистрировать сообщение при создании сеанса, а трассировка стека будет указывать, где это произошло. Он также предоставляет другую полезную информацию с более понятным для человека выводом, чем стандартные записи журнала, поэтому он полезен в среде разработки. Если вы используете поддержку пространства имен Spring Security, вам просто нужно добавить элемент

<debug />

к вашей конфигурации.

Другие вопросы по тегам