为什么jstl有两个jar文件?

pjngdqdw  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(342)

这个问题在这里已经有答案了

目的是什么: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文件中呢?

jaxagkaj

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。。。。

相关问题