一、应用点
Tomcat是Apache基金会提供的Servlet容器,它支持JSP, Servlet和JDBC等J2EE关键技术,所以用户可以用Tomcat开发基于数据库,Servlet和JSP页面的Web应用,这是没有问题的。
但是,Tomcat却不是EJB容器;也就是说,Tomcat不支持J2EE的重要技术之一,EJB。那么,使用EJB组件开发的Web应用程序就无法在Tomcat下面运行。众所周知,EJB是分布式应用程序的核心技术,所以说凡是需要使用EJB来开发的应用(例如,银行、电信等大型的分布式应用系统)就不能用Tomcat了。这也就是很多公司不选择Tomcat的原因。
至于支持EJB的应用服务器,Weblogic( Oracle), WebSphere(IBM)和JBoss( Redhat)都是符合J2EE规范的EJB容器,所以都可以用来开发大型的分布式应用程序。
所以,原则上来说,只要你要开发基于EJB组件的应用,上述三种任选一个都是可以的。唯一的区别是,Weblogic和WebSphere都是付费的,JBoss是开源免费的。
很多公司为了省钱,选择了JBoss作为应用服务器,但是,开源免费也就意味着厂商不会为终端用户直接负责;所以,当JBoss服务器出现任何问题......自己扛着吧!
总的来说,Weblogic和WebSphere还有JBoss都有人用,但是很多公司拿着这些大玩意儿实际上干的也只是Tomcat级别的项目,不然怎么超出预算呢?所以如此一来,差别也就不大了。
二、责任划分
工商银行那次宕机,别人用的是IBM的WebSphere,可以公开声明说是IBM的责任,如果使用JBOSS,你找谁呢?推卸不了责任。不当背锅王,那就选要钱的吧。
三、Tomcat
Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。当然现在更多人用Nginx代替了Apache。