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 />
к вашей конфигурации.