First, the application point
Tomcat is a servlet container provided by the Apache Foundation that supports Java EE key technologies such as JSP, servlet and JDBC, so users can use Tomcat to develop Web applications based on database, servlet, and JSP pages, which is no problem.
However, Tomcat is not an EJB container; in other words, Tomcat does not support one of the important techniques of the Java EE, EJB. Then, Web applications developed using EJB components cannot run under Tomcat. As we all know, EJB is the core technology of distributed application, so it is not possible to use Tomcat for applications that need to be developed using EJB (for example, large distributed application systems such as banks and telecommunications). That's why many companies don't choose Tomcat.
As for EJB-enabled application servers, Weblogic (Oracle), WebSphere (IBM) and JBoss (Redhat) are all EJB containers compliant with the Java EE specification, so they can be used to develop large, distributed applications.
So, in principle, as long as you're developing an application based on EJB components, the above three options are all possible. The only difference is that WebLogic and WebSphere are paid for, and JBoss is open source free.
Many companies have chosen JBoss as an application server to save money, but open source free also means that the vendor will not be directly responsible for the end user, so when there is any problem with the JBoss server ... Carry it on your own!
In general, WebLogic and WebSphere and JBoss are all used, but many companies are actually doing Tomcat-level projects with these big gadgets, otherwise how do they go beyond the budget? So the difference is small.
Ii. Division of responsibilities
ICBC's outage, someone using IBM's WebSphere, can publicly declare that it is IBM's responsibility, if you use JBoss, who are you looking for? Can't shirk responsibility. Do not back pot King, then choose the money.
Third, Tomcat
Tomcat is not just a servlet container, it also has the functionality of a traditional Web server: Working with HTML pages. But compared to Apache, its ability to handle static HTML is inferior to that of Apache. We can integrate Tomcat and Apache into one piece, allowing Apache to handle static HTML, while Tomcat handles JSPs and Servlets. This integration only needs to modify the Apache and Tomcat configuration files. Of course, more people now use Nginx instead of Apache.
Selection of Tomcat, Weblogic, WebSphere, and JBoss servers