这个问题在这里已经有答案了:
目的是什么:api.jar+impl.jar+bundle.jar(4个答案)上个月关门了。为了使用jstl库,我们需要下载两个jar文件。例如 javax.servlet.jsp.jstl-api-1.2.1.jar 以及 javax.servlet.jsp.jstl-1.2.1.jar . 我打赌他们有一些接口和类允许我们使用这些标记。但是不管他们有什么,为什么他们不把它放在一个jar文件中呢?
javax.servlet.jsp.jstl-api-1.2.1.jar
javax.servlet.jsp.jstl-1.2.1.jar
jaxagkaj1#
正如安德烈亚斯指出的:“一个是api,主要是接口,另一个是实现。编译时需要api,运行时需要两者。”你问题的核心是:但是不管他们有什么,为什么他们不把它放在一个jar文件中呢?中类的功能 javax.servlet.jsp.jstl-.jar 文件通常由web容器提供。您将在web容器自己的jar文件中找到这些类。它们可能不同于您在maven central(或其他任何地方)中找到的参考实现版本。所以,把这些课程 javax.servlet.jsp.jstl-1.2.1.jar 以某种方式导入war文件可能是多余的(因为已经提供了类),或者是有害的,因为引用实现类与web容器实现的其他方面冲突/不起作用。无论如何,拥有独立jar文件的根本原因是因为分离api和实现对于正确运行和减少war文件膨胀是必要的。当然,你可以在你的webapp的war文件中明确地包含这两个jar。。。。
javax.servlet.jsp.jstl-.jar
1条答案
按热度按时间jaxagkaj1#
正如安德烈亚斯指出的:
“一个是api,主要是接口,另一个是实现。编译时需要api,运行时需要两者。”
你问题的核心是:
但是不管他们有什么,为什么他们不把它放在一个jar文件中呢?
中类的功能
javax.servlet.jsp.jstl-.jar
文件通常由web容器提供。您将在web容器自己的jar文件中找到这些类。它们可能不同于您在maven central(或其他任何地方)中找到的参考实现版本。所以,把这些课程
javax.servlet.jsp.jstl-1.2.1.jar
以某种方式导入war文件可能是多余的(因为已经提供了类),或者是有害的,因为引用实现类与web容器实现的其他方面冲突/不起作用。无论如何,拥有独立jar文件的根本原因是因为分离api和实现对于正确运行和减少war文件膨胀是必要的。当然,你可以在你的webapp的war文件中明确地包含这两个jar。。。。