仅包含 JSTL 实现 jar

Including JSTL implementation jar only

在这个 answer 之后,下面是一个简单的 JSP 演示,其中仅包含 JSTL 实现 jar(javax.servlet.jsp.jstl-1.2.1.jar),但不包含 JSTL API jar(javax.servlet.jsp.jstl-api-1.2.1.jar),


我的理解是,JSTL 实现 jar 包含 API(主要是 Java 接口)及其实现。这就是 test.jsp 编译并执行成功的原因。

此外,同样的方法也适用于使用 Tomcat 容器提供的 API 实现 jar 的 servlet,而不使用 API(servlet-api.jar).


这样理解对吗?

Api 仅包含编译代码所需的接口。实现可以在不同的库中。

Tomcat 和任何其他 Java 网络服务器在运行时提供实现,因此您不需要打包已实现的分类并在您的应用程序中继续它们。

如果您部署包含 类 impl.

的应用程序,您可以在日志中看到是否已加载实施