几年后我回来构建Web应用程序,并意识到我从未编译过一个servlet而不依赖于我碰巧使用的任何容器。
我当然可以继续这样做,但我仍然更喜欢某种'官方'servlet api JAR。
我在这里找到了一个:http://repo.maven.apache.org/maven2/javax/servlet/servlet-api/2.5/
但我不明白是怎么到那里的?奇怪的是,它不是以com.sun或com.oracle开头的组ID?
我能想到的唯一其他官方方法取决于Glassfish的实施?
由于
答案 0 :(得分:0)
Maven上的servlet-api.jar只包含公共定义接口的接口和抽象类。那里没有方法实现,验证类和方法签名是否正确是微不足道的。这就是编译的必要条件。 (运行当然是另一回事,你需要一个servlet容器提供的实际实现)。
com.sun和com.oracle包通常包含标准API的“官方”实现,其中标准类库尚未包含它们。
tl; dr :http://repo.maven.apache.org/maven2/javax/servlet/servlet-api/2.5/绝对可以用于编译。
答案 1 :(得分:0)
“javax.servlet”实际上是“Java Extensions”的官方Sun / Oracle groupId,因此是javax。 “com.sun”用于所有内部细节实现。