每个webcontainer是否都需要自己的servlet实现?
问题描述:
我们通常会得到一个servlet-api.jar以及web/app服务器。每个webcontainer是否都需要自己的servlet实现?
- 是否每个人都有自己的servlet JSR实现或他们会使用SUN提供的API?
- 这是否适用于所有其他J2EE API(EJB,JMS,MAIL)?
答
就像整个Java EE API的剩余部分一样,Servlet API是abstract。 Sun Oracle不提供任何代码。合同在纸上定义(API specification,javadocs等)。实施者必须提供符合规格/ javadoc的API和实现本身的混凝土。但通常有一个所谓的“参考实现”,其代码可以在其他实现中共享/重用/分叉。在使用Servlet 2.5之前,它曾经是Apache Tomcat。对于Servlet 3.0,这是Glassfish。
我不喜欢穿透:P :)另外,我认为他们确实在一个罐子里提供接口,不是吗? (+1) – Bozho 2010-09-13 18:15:04
@Bozho:我都没有:)接口类(无源文件!)只有在版本2.2之前才可以公开。另见[本档案](http://java.sun.com/products/servlet/reference/api/index.html)。 – BalusC 2010-09-13 18:36:59