Как Struts2 ValueStack заботится о нескольких запросах

я понимаюValueStack была введена в Struts2 и еще одно изменение по сравнению с моделью Struts1 теперь является новымActionObject создается для каждого запроса. Таким образом, мы можем определять переменные экземпляра, не беспокоясь о проблемах с многопоточностью. Способ, которым перехватчики и JSP получают доступ к переменным экземпляра изActionObjects черезValueStack, Но путьValueStack реализуется (или, по крайней мере, используется платформой Struts2)ValueStack, чтобы сделать доступ проще, чтобы мы неНе нужно обходить все дерево объектов. У меня есть следующие вопросы.

Что если у меня есть встроенные объекты (множественная иерархия объектов)? как механизм доступа ведет себя в таком случае?

Если, скажем, 2 клиента сделали запросы к одному и тому же актину в одно и то же время, и результат выполнения Action отличается, потому что входные данные, предоставленные 2 клиентами, вернулись с 2 разными результатами. Допустим, у моего класса действий есть метод, позволяющий получить лучшую цену, и исходя из логики в моем бэкэнд-сервисе, результаты получаются как 10 и 12 для 2 разных запросов. СейчасActionClass имеет переменную-член с именем price, в которой будет храниться это значение, и результирующий JSPshowResults.jsp получит доступ к этой переменной (используя тег lib), чтобы показать цену. Каким образом структура Struts2 гарантирует, что client1 и client2 вернут правильный ответ, и цены не перемешиваются, пока ответ отображается в JSP, потому что, насколько я понимаю,ValueStack просто идет первым по порядку (логика стека). Таким образом, возможно, в конечном итоге будет возвращено 10 для обоих клиентских запросов, поскольку одна и та же переменная хранится дважды (с одним и тем же именем) в стеке значений, но с разными значениями.

КогдаValueStack уничтожить объект из его списка?

Ответы на вопрос(1)

Ваш ответ на вопрос