【发布时间】:2013-03-02 16:40:20
【问题描述】:
我是 Java EE 技术的初学者。我想知道jstl-api jar 和jstl-impl jar 之间有什么区别。
为什么 API 和实现是分开的?这是否意味着还有其他可用的实现?
【问题讨论】:
我是 Java EE 技术的初学者。我想知道jstl-api jar 和jstl-impl jar 之间有什么区别。
为什么 API 和实现是分开的?这是否意味着还有其他可用的实现?
【问题讨论】:
API 和实现是分开的,因为 Java EE 使用标准化规范。
API 是该规范的一部分,并包含一组大部分接口,参与创建该规范的每个人都同意这些接口。从理论上讲,每个人都可以实现已发布的标准化 API 并按照相关规范文档中的描述进行操作。当您的实现通过所谓的 TCK(技术合规性工具包)时,您可以将其称为“已认证”。
该规范系统的既定目标是鼓励竞争,同时受保护的用户会被锁定在任何特定的实施中。
JSTL 特别是 JSP 规范的一部分,它是在JSR 245 下开发的。如果您想自己实现,请先阅读spec document。
您能否指出任何解释如何为 jstl 编写我们自己的 impl 的教程?
据我所知,没有具体的教程可以创建您自己的 Java EE 规范实现。在几乎所有情况下,这几乎都是一项专家工作,而且通常只由少数几个组织或个人执行。这种材料并不适合像教程一样的写作,尽管 David Blevins(TomEE 的名气)偶尔让我们瞥见了与此相关的工作。
【讨论】:
javax.servlet.jsp.jstl.jar,但没有jstl-impl.jar。如果我想在我的 JSP 文件中使用 JSTL,这会是个问题吗?我的教程使用 GF3 并且有两个 jar,而我的环境有 GF4 和 servlet-jstl jar。
jstl-api 包含需要实现的接口。 jstl-impl 包含这些实现的标准或默认实现。为什么两者都需要?因为如果您想要标准或默认功能,则使用 jstl-impl,但如果您想实现自己的行为,则可以覆盖 jstl-api 中接口的方法。这就是 API 的含义:应用程序编程接口。最好的问候。
【讨论】: