Abt the Action Class, the RequestProcessor uses Lazy initialization technique wherein it creates an instance of the Action Class when it gets the request for that particular action and uses the same instance for all the subsequent requests. This is the reason why its recommended not to use any Class/Instance level variables in your Action Class. Makes use of only Local variable in your execute method of your action class to make sure that you dont have any Thread Synchronization issues.
Abt the Form, if the scope of the form bean is session, the action servlet(Might be the RequestProcessor here also, not sure, do check it out) creates the instance of the bean and puts the instance into the session for each user and then reuses the same instance for the whole of the session. but if the scope is request then a new instance is created each time a request is given for that particular form and for each user seperately.
hope this helps
[ March 22, 2004: Message edited by: Kiran Kumar ]