Servlet容器,负责管理Servlet生命周期。
Web容器,负责管理和部署Web应用,其本身可能具备Servlet容器组件;如果没有,一般能将第三方Servlet容器作为组件整合进Web容器。
1.Web容器好比电视机,Servlet容器好比VCD。
没有Servlet容器,你也可以用Web容器直接访问静态页面,比如安装一个Apache等,但是如果要显示JSP/Servlet,你就要安装一个Servlet容器了,但是光有Servlet容器是不够的,因为它要被解析成html输出,所以你仍需要一个Web容器。
大多数Servlet容器同时提供了Web容器的功能,也就是说大多Servlet可以独立运行你的Web应用。
2.实际上容器就是一个服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,如java中的Tomcat容器,ASP的IIS或PWS都是这样的容器,一个服务器不止一个容器的。
3.Web Container,给处于其中的应用程序组件(JSP,Servlet)提供一个环境,使JSP、Servlet直接跟容器中的服务接**互,不必关注其它系统问题。Web Container主要有Web服务器来实现。例如:Tomcat,WEBLOGIC,WEBSPHERE等。比如,Resin 2.1.x以上版本提供的Servlet Container就实现了J2EE的Servlet 2.3规范。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。
Web容器更多的是跟基于HTTP的请求打交道。而EJB容器不是。它是更多的跟数据库、其它服务打交道。但他们都是把与外界的交互实现从而减轻应用程序的负担。例如SERVLET不用关心HTTP的细节,直接引用环境变量session,request,response就行、EJB不用关心数据库连接速度、各种事务控制,直接由容器来完成。