【问题标题】:Including JSTL implementation jar only仅包括 JSTL 实现 jar
【发布时间】:2018-06-08 13:23:39
【问题描述】:

在这个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)。


这是正确的理解吗?

【问题讨论】:

    标签: java jsp servlets jstl


    【解决方案1】:

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

    Tomcat 和任何其他 Java Web 服务器在运行时提供实现,因此您无需将实现的类打包并在您的应用程序中进行。

    如果您部署包含类 impl 的应用程序,您可以在日志中看到是否已经加载了实现。

    【讨论】:

    • 要编译实现jar中的代码,我们需要api代码(主要是接口)。我们是否在实现 jar 中包含 API 文件?
    • 我可以寻找有关分离 API 和实现的资源吗?使用核心 java。
    猜你喜欢
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    相关资源
    最近更新 更多