Application server and web server in Java both are used to host Java web application. Though both application server and web server are generic terms, difference between application server and web server is a famous J2EE interview question. On Java J2EE perspective main difference between web server and application server is support of EJB. In order to run EJB or host enterprise Java application (.ear) file you need an application server like JBoss, WebLogic, WebSphere or Glassfish, while you can still run your servlet and JSP or java web application (.war) file inside any web server like Tomcat or Jetty.
This Java interview question is in continuation of my previous post on interviews like Top 10 Spring interview questions and Top 10 Struts interview question. Here we will see some difference between application server and web server in point format which will help you to answer this question in any java interview.
Application Server vs Web Server
- Application Server supports distributed transaction and EJB. While Web Server only supports Servlets and JSP.
- Application Server can contain web server in them. most of App server e.g. JBoss or WAS has Servlet and JSP container.
- Though it’s not limited to Application Server but they used to provide services like Connection pooling, Transaction management, messaging, clustering, load balancing and persistence. Now Apache tomcat also provides connection pooling.
- In terms of logical difference between web server and application server. web server is supposed to provide http protocol level service while application server provides support to web service and expose business level service e.g. EJB.
- Application server is heavier than web server in terms of resource utilization.
Personally I don’t like to ask questions like Difference between Application Server and Web Server. But since it’s been asked in many companies, you got to be familiar with some differences. Sometimes different interviewer expect different answer but I guess on Java’s perspective until you are sure when do you need an application server and when you need a web server, you are good to go.
Source: Javarevisited