The request is received by the Web server and handed off to the servlet con-
tainer. The servlet container can be running in the same process as the host
Web server, in a different process on the same host, or on a different host from
the Web server for which it processes requests.
The above text is from servlet specification. I can't understand the next issue: Is the servlet container and web-server the same thing? Is, for instance, Tomcat just a servlet container, or both of them? From the above definition i deduct that servlet container and web server are two different things. Why than to run a web application, we just install Tomcat, without any additional web server? Illuminate me, please!
If you think you've done too much, usually it means you've done too few.
A web server is something that just does one Job and that is to serve static web pages. Web server takes care of getting a request to a web page and getting the web page back to the user.
Apache is a web server.
The servlet container is the process that takes care of executing the Servlet/Jsp code and turning them into web page that the web server can deliver back to the client.
Tomcat is a web container.
The only reason that you do not have to install a separate web server when you install Tomcat is because Tomcat installs the Apache web server and the Tomcat Container. (That's why its called Apache Tomcat I assume )