我思考了一个晚上这个问题,我意识到答案也许就在罐子旁边。问题的最后一部分,关于 4 个 apache tomcat jar,来自link,有2个自述文本文件(来源自述文件, 二进制自述文件)
It says:
There are three primary sub-modules:
spec <-- contains Apache's implementation of the API classes
impl <-- contains the implementation of tags from the 1.1
namespace http://java.sun.com/jsp/jstl/*
jstlel <-- contains the implementation of tags from the 1.0
namespace http://java.sun.com/jstl/* and uses the
original JSTL 1.0 version of EL
In addition, the following modules provide supporting functionality
build-tools <-- build support such as checkstyle rules
compat <-- contains the implementation of tags from the 1.0
namespace but uses the JSP container's implementation
of EL (which will be 2.1 or later).
二进制自述文件:
This version of the Standard Tag Library has the following runtime
dependencies:
1. Dependencies provided by a JSP 2.1 container:
- Java 1.5 or later
- Servlet 2.5 or later
- JSP 2.1 or later
2. Additional dependencies
- The XML tag library requires Apache Xalan 2.7.1 or later
---
Apache Xalan 2.7.1
To address performance issues with XSLT processing, this version relies on
implementation specific functionality from Apache Xalan. The following
libraries should be included in the classpath for your application:
- xalan-2.7.1.jar
- serializer-2.7.1.jar
---------------------------------------------------------------------------
ADD DEPENDENCIES TO A WEB APPLICATION
To use this distribution with your own web applications, add the following JAR
files to the '/WEB-INF/lib' directory of your application:
- taglibs-standard-spec-1.2.5.jar
- taglibs-standard-impl-1.2.5.jar
- taglibs-standard-jstlel-1.2.5.jar
- xalan-2.7.1.jar
- serializer-2.7.1.jar
If you do not use JSTL 1.0 tags then the "taglibs-standard-jstlel" JAR may be
omitted. If you do not use the XML library, then the Apache Xalan dependencies
may also be omitted.
If you build you application with Maven, add the following dependencies to
your pom.xml file:
<dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-standard-spec</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>org.apache.taglibs</groupId>
<artifactId>taglibs-standard-impl</artifactId>
<version>1.2.5</version>
</dependency>
我还使用jd-gui反编译jar,然后我在taglibs-standard-impl-1.2.5.jar中找到一些类,它们的基类在taglibs-standard-spec-1.2.5.jar中。
同样使用反编译方法,我可以发现,
jstl-1.2.jar是一个单一的jar,但它的jar中有两个主要的包。
- 1) org.apache.taglibs.standard
- 2) javax.servlet.jsp.jstl
javax.servlet.jsp.jstl-1.2.4.jar 和 javax.servlet.jsp.jstl-api-1.2.1.jar 是另一个组 jar。
它们每个jar中只有一个主包,它们是javax.servlet.jsp.jstl-1.2.4.jar中的org.apache.taglibs.standard命名空间,以及javax.servlet中的javax.servlet.jsp.jstl命名空间.jsp.jstl-api-1.2.1.jar。所以我们可以说这两个 jar 的组合等于 jstl.jar
情况与apache tomcat jars组类似。不同之处在于apache tomcat实现将更多的类划分为3或4个不同的jar文件。
所以到目前为止,我可以说我理解了那些 apache tomcat jar 的大部分基本用法。