您的位置:首页 > 其它

Web服务器和servlet容器的区别

2012-07-25 15:19 357 查看


今天和同事在纠结web服务器和servlet容器的区别,到底我们常用的tomcat是属于servlet容器呢还是web服务器?首先,tomcat肯定是一个servlet容器,但是它还集成了一些简单的web服务器的功能,所以它可以独立运行web应用。

下面是一些在网上找的一些信息,讲得还不错(下文中说的web容器更准确地说应该是web服务器):

1. web容器好比 电视机

servlet容器好比 VCD

没有VCD你可以看电视,对吧,但是有了VCD没有电视机,你从哪看起?:)

没有servlet容器,你也可以用web容器直接访问静态页面,比如安装一个apache等,但是如果要显示jsp/servlet,你就要安装一个 servlet容器了,但是光有servlet容器是不够的,因为它要被解析成html输出,所以你仍需要一个web容器.

大多数servlet容器同时提供了web容器的功能,也就是说大多servelt可以独立运行你的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不用关心数据库连接速度、各种事务控制,直接由容器来完成。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: