Я довольно новичок в Java EE. Я проходил через CDI и EJB материал и наткнулся на @SessionScoped и @Stateful аннотацию.@SessionScoped/@Stateful - как они управляют сеансом/состоянием
Глядя на определение: @SessionScope: поддерживается взаимодействие пользователя с веб-приложением по нескольким HTTP-запросам.
@Statfeful: похоже, она имеет такую же функциональность как @SessionScope
Так вот мои сомнения:
1) Есть ли оба они служат той же цели? 2) У меня есть немного опыта работы с Node и Python. В этих языках для поддержания состояния клиента я всегда использовал cookie, который привязан к объекту HTTPSession, который дополнительно привязан к кешу в памяти (redis/memcache) для распространения по всем серверам.
Так что я могу использовать ту же технику здесь ... правильно? Тогда почему я должен использовать эти обозначения? Кроме того, если я планирую использовать их, то как их распределить по всем серверам? Я имею в виду, запрос от клиента может прийти на server1, а затем следующий запрос может перейти на server2 .. в этом случае, если этот объект SesssionScoped не распределен, то как все будет работать правильно?
Какова цель этих аннотаций?
@sessionScope привязывает объект к сеансу HTTP ... можете ли вы объяснить это? Если мой объект sessionScoped не распространяется, как это будет работать? И как это обязательство сделано? Раньше я использовал файлы cookie для привязки моего http-запроса к объекту http session (в node.js) – JackSparrow
Я имею в виду, что любой объект, который намерен содержать состояние клиента, должен быть распределен по всем приложениям, не так ли? – JackSparrow
Что значит не распространять? Я думаю, вы запутываете кластеризацию и сеансы http. –