Essentially, the web server is a very efficient file server. It server files, like image, html, pdf, mp3, and various other static, files to the client, and it does it very very well. Unfortunately, a web server is about as intelligent as a male model, so asking it to add 2 + 2 is a bit of a stretch.
For performing logic, such as calculations, business logic, back end connectivity to database and such, you need something with a bigger brain - that's where an application server comes in.
Tomcat, WebSphere, Weblogic - they're all application servers that step up to the plate when logic needs to be performed.
That's a quick answer. Here are some tutorials on the topic, more specifically with WebSphere, but the idea is the same:
What is the role of the web server and the application server? -Cameron McKenzie
(Here's some of the stuff from the article)
When dealing with web based requests, before tunneling through to our application server, a client will always hit a web server first. The WebSphere Application Server does not replace the need for a web server. Even with version 6.1, a web server remains as pivotal a part of the WebSphere architecture as ever.
Web servers are great at doing one thing: serving up files. A web server takes requests from clients, maps that request to a file on the file system, and then sends that file back to the client.
If you want an html file, a web server can efficiently and reliably find that file and send it back to you. If you need an image, a web server can serve it up to you as well. You want to download a zip file or a pdf file quickly and efficiently? A web server can make that happen.
Unfortunately though, your web server is about as intelligent as a male model. A web server can serve up static files until the cows come home, but ask your web server to add ?one plus one? and you?ll be waiting there for a very, very long time. Figure 1-1
If our applications use any images, html, pdf or zip files, we like to keep all of those static files on the web server. If we need some logic or dynamic content in our applications, we will delegate to our
Servlets, JSPs, EJBs and JavaBeans that are running on our Application Server.