什么是 JSTL 强制 Jars

2023-11-30

我是新人,刚刚开始学习Java。来自jstltag,我对jstl了解很多。

我使用IDE(eclipse mars)通过添加一个简单的jsp页面来创建一个动态Web项目,然后将war导出到tomcat 7的webapps文件夹中。我对jstl强制jar的依赖做了一些测试。

我的核心项目文件是:

web.xml: 

  <web-app xmlns:xsi="http:....... version="3.0">   //use servlet 3.0

索引.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>   
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jstl Tag Lib</title>
</head>
<body>
<h2>2+2=${2+2}</h2> //this line works, el is a part of jsp.

//below lines work fine if there are proper jstl jars.
<c:set var="salary" scope="session" value="${2000*2}" />
salary:<c:out value="${salary}" />
</body>
</html>

在 WEB-INF/lib/ 文件夹中,我有 3 种 jar,所有 3 组都工作正常。

1)仅包含:

jstl-1.2.jar

什么组织提供?阿帕奇汤姆猫?

2)仅包含:

javax.servlet.jsp.jstl-api-1.2.1.jar
javax.servlet.jsp.jstl-1.2.4.jar

在这里,我有一个问题:这两个罐子有什么区别?

3)仅包含:

taglibs-standard-impl-1.2.5.jar
taglibs-standard-compat-1.2.5.jar
taglibs-standard-jstlel-1.2.5.jar
taglibs-standard-spec-1.2.5.jar

鞋子罐子从下载http://tomcat.apache.org/download-taglibs.cgi在这里,我有一个问题:这三个罐子有什么区别? 因为我不知道区别,所以我将三个 jar 放到 lib 文件夹中,但我发现 taglibs-standard-impl.*.jar 在运行时是必需的。


我思考了一个晚上这个问题,我意识到答案也许就在罐子旁边。问题的最后一部分,关于 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 的大部分基本用法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是 JSTL 强制 Jars 的相关文章

随机推荐

  • 获取远程PC的日期时间?

    是否有任何类可用于获取 net 中远程 PC 的日期时间 为此 我可以使用计算机名称或时区 对于每种情况 是否有不同的方法来获取当前日期时间 我使用的是 Visual Studio 2005 我给你一个解决方案 使用WMI 您可能需要也可能
  • 如何使用请求模块下载,然后上传文件而无需中间文件

    我想先下载一个图像文件到服务器 然后将该文件上传到其他服务器 如果没有download file step 这将非常简单 var fs require fs var path tmp test png var formData method
  • 带 bo​​otstrap.css 的 webpack 不起作用

    这是我的webpack config js file var ExtractTextPlugin require extract text webpack plugin webpack require webpack module expo
  • 括号可以使用任意标识符作为参数吗? C++

    例如 是 const int someInt 有效代码 如果是这样 该声明与 const int someInt 您可以在两边放置任意多个括号表达式而不改变含义 但你不能对类型做同样的事情 特别是 正如其他人指出的那样 代码中的括号将含义从
  • 在 R 中创建地形图

    我正在尝试创建一个脚本 该脚本将为给定的一组坐标生成二维地形或等高线图 我的目标类似于 contour volcano 但对于用户设置的任何位置 事实证明 这具有惊人的挑战性 我努力了 library elevatr library tid
  • 我可以使用 Order By 和 ToLower 对 DocumentDB 执行不区分大小写的字符串排序吗?

    我想按标题的字母顺序对 DocumentDB 集合中的记录进行排序 起初我认为这是有效的 SELECT c Title FROM c ORDER BY c Title 但正如预期的那样 这会将小写字母排在大写字母之后 我希望我的搜索不区分大
  • android:对话框或弹出窗口内的webview

    如何在对话框或弹出窗口中添加 Web 视图 我的网络视图保留 URL WebView loadurl 当视图添加到对话框内时 它仍然移动到浏览器 我去过android 在对话框中加载webview但没有例子说明如何做吗 谢谢 这是示例 Al
  • 适用于 Java 8 的 Tomcat 8 Maven 插件

    Is the tomcat7 maven plugin使用 tomcat 8 服务器和 java 8 我找不到任何tomcat8 maven plugin 是的你可以 In your pom xml 添加tomcat插件 您可以将其用于 T
  • 是否可以防止 TeamCity 中的构建链被中断?

    我在 TeamCity 7 1 3 中进行了以下设置 项目A 构建和部署 A 测试 A 快速 测试 A 慢速 测试 A 非常慢 项目B 构建和部署 B 测试 B 快速 测试 B 慢速 A 的所有测试都依赖于 构建和部署 A B 的所有测试都
  • printf C 中十六进制值的最后一个字节

    我有一个简单的问题 代码非常短 所以我只是将其发布在这里 include
  • 动态设置 ui-sref Angularjs 的值

    我搜索过类似的问题 但出现的问题似乎略有不同 我正在尝试动态更改链接的 ui sref 此链接指向向导表单的下一部分 下一部分取决于下拉列表中所做的选择 我只是想根据选择框中的某些选择来设置 ui sref 属性 我可以通过绑定到在进行选择
  • 如何防止gcc优化破坏rep movsb代码? [复制]

    这个问题在这里已经有答案了 我尝试使用以下命令创建我的 memcpy 代码rep movsb操作说明 当禁用优化时 它可以完美地适应任何尺寸 但是 当我启用优化时 它无法按预期工作 问题 如何防止gcc优化破坏rep movsb代码 我的代
  • 使用 Ruby 驱动程序的 MongoDB Group

    我正在尝试带回一个包含用于描述博客文章的计数的年 月组合列表 我们的想法是 它们将像这样显示 2010 年 1 月 1 篇文章 2009 年 12 月 2 个职位 我已经设法使用 MongoDB JS shell 让它工作 并且它以有用的格
  • PHP-PDO从数据库获取元数据

    我想从带有 朋友 表的数据库中获取元数据 id name 1 Herbert 2 LG 3 Levins 这是我试图获取数据的代码
  • 如何正确手动重新创建 sklearn (python) 逻辑回归 Predict_proba 结果以进行多重分类

    如果我运行 4 个类的基本逻辑回归 我可以获得 Predict proba 数组 如何使用系数和截距手动计算概率 获得与 Predict proba 生成的相同答案的确切步骤是什么 网上似乎有很多关于此的问题和一些建议 这些建议要么不完整
  • Android 中不显示选项菜单

    我有这个代码来创建菜单 Override public boolean onCreateOptionsMenu Menu menu super onCreateOptionsMenu menu MenuInflater inflater g
  • 风格化文本以针对不同语言使用不同字体?

    有没有一种方法可以对 HTML 页面上的文本进行样式化 以便它针对不同的语言自动使用不同的字体 我的网站使用英语和阿拉伯语 我想根据显示的语言使用不同的字体 假设我有这样的一段 上一句是阿拉伯语 但这一句是英语 我希望阿拉伯语句子用 X 字
  • 当 SimpleXML 解析带有特殊字符的 XML 时会发生什么?

    我正在尝试用我的最终输出来解决这个问题 XML 提要看起来像这样
  • UIView动画

    我正在尝试制作动画UIView这里 它看起来像一个矩形 我只想将其转换为我的坐标 那么 我怎样才能让它动起来呢 我试图找到一些教程 但没有成功 在iOS 4中 UIView块动画方法是最简单的 UIView animateWithDurat
  • 什么是 JSTL 强制 Jars

    我是新人 刚刚开始学习Java 来自jstltag 我对jstl了解很多 我使用IDE eclipse mars 通过添加一个简单的jsp页面来创建一个动态Web项目 然后将war导出到tomcat 7的webapps文件夹中 我对jstl