在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而不使用API(servlet-api.jar
)的servlet也可以使用相同的方法。
这是正确的理解吗?
答案 0 :(得分:1)
Api仅包含编译代码所需的接口。实施可以在不同的库中。
Tomcat和任何其他Java Web服务器都在运行时提供实现,因此您不需要打包已实现的类,并使用您的应用程序继续执行。
如果部署包含类impl的应用程序,则可以在日志中看到是否已加载实现。