Howdy, Dennis. Welcome to JavaRanch!
Well, it's pretty simple: a web container (such as Jetty or
Tomcat) do provide an environment to run web components, such as
Servlets and JSPs. But they do not provide infrastructure and do not offer some APIs, such as security, transactionality,
Java Mail, etc. That's where application servers come in. An application server (such as JBoss or Glassfish) have embedded web containers and provide all the infrastructure necessary to build big enterprise applications.
Normally, application servers are "heavyweight", that is, they aren't very fast (or slow, if you will) when starting, for instance. Spring's first purpose was to be an alternative to these heavyweight containers, and this way, you could benefit of the speed of the web containers and still have all the infrastructure. So, if you want to build a real enterprise application and use a webcontainer, Spring is the way to go.