Tomcat is a
servlet container and is not associated in a strict way with anything. Struts can be run as easy on Jetty, WLS, or any other servlet container.
Spring does not require by itself a container, but if you intend to use Spring MVC you will need a servlet container, if you intend to use
EJB you will need an application server, or if you intend to use JMS you will need a messaging system.
./pope