You have to write thread safe action classes (Have only constants as instance variables).
While that approach is sufficient for achieving thread-safety, it's not a necessary. The crucial aspect is that
access to shared mutable state must be guarded. There's nothing wrong with using instance variable in
servlets or Struts 1 actions, as long as they are read-only, or access to them is properly synchronized.
Note that there are other potential sources of concurrency problems besides instance variables, like sessions and context attributes.