Tomcat is primarily a servlet container which extends the functionality of a web server. (Since a servlet container can't do anything without a web server, Tomcat includes its own web server for convenience.)
In J2EE terms, an application server usually means it also has an EJB container. An application server handles things like database connections, lifecycle management, transactions and so on. I don't think this is necessarily a "legal" definition, it just seems to me that this is what most people mean when they say "application server."
Clearly though, you can build robust, scalable Java applications without EJB. If you have Tomcat and Apache, for instance, using Struts and Hibernate frameworks, would you call that an application server?
Joined: Jun 23, 2004
Greetings from Hogwarts,
Hussain, thank you very much for replying.. It helped me alot. I appreciate it..
Webserver ========= - Provides access to static content(html, etc.) by just sending the file to the client. - Provides accesss to dynamic content by delegating the processing of dynamic web pages like jsp and asp to appropriate engines like servlet container and ASP engine respectively.
Application Server ================== - A Webserver with the ability to deploy and manage applications and expose business logic to the client.
Web server usually serves http request while application server deals with various sorts of protocols to serve. So in this context web server is a subset of application server. But I really dont feel comfortable with the definition that applicaiton server is a web server+something.
Ashik Uzzaman Senior Software Engineer, TubeMogul, Emeryville, CA, USA.