имеет ли класс действия какую-либо область действия, такую ​​​​как formbean

Это касается Struts1.x

  1. Имеют ли классы Action область видимости, как у форм-бинов?
  2. Создается ли новый экземпляр Action для каждого сеанса пользователя?
  3. Если два пользователя одновременно используют один и тот же класс действий, будут ли у них два разных объекта класса действий или один и тот же?

Заранее спасибо.


person user1036204    schedule 08.11.2011    source источник


Ответы (1)


1) Область действия определяет, хранится ли форма действия в области сеанса или области запроса. Так что нет, отдельно от его формы bean действие не имеет области действия.

2) Нет, экземпляры класса Action создаются при запуске приложения и являются общими.

3) Запросы, нацеленные на одно и то же действие (что означает, что они имеют один и тот же путь), будут отправлены одному и тому же объекту действия. Будучи отдельными вызовами методов, они получат отдельные копии переменных, локальных для метода, но увидят одни и те же переменные экземпляра (с возможными условиями гонки).

person Nathan Hughes    schedule 08.11.2011
comment
Спасибо Дэйву Ньютону и Натану Хьюзу, - person user1036204; 09.11.2011
comment
Благодаря Дейву Ньютону и Натану Хьюзу (1) Является ли метод execute(-,-,-,-) класса Action потокобезопасным по умолчанию? если мы используем только аргументы метода, предоставленные ActionServlet (со сценарием, в котором метод выполнения не использует переменные экземпляра, кроме предоставленных аргументов метода, и не имеет дело с транзакционными кодами муравьев)? - person user1036204; 09.11.2011
comment
user1036204: действие похоже на сервлет без шаблона. threadsafe - это не то слово, которое я бы использовал. пока вы получаете доступ только к локальным переменным и параметрам, все в порядке. (каждый вызов метода получает свой собственный фрейм стека, поэтому jvm гарантирует, что они разделены). Для переменных экземпляра и класса к ним будут обращаться одновременно несколько потоков. я не знаю, что означают транзакционные коды муравьев. это помогает? - person Nathan Hughes; 09.11.2011
comment
Спасибо за быстрый ответ. Извините, я упомянул о логике постоянства, это было бы правильное слово, а затем «и транзакционные коды». - person user1036204; 09.11.2011