JSTL(Java server pages standarded tag library,即JSP标准标签库)是由JCP(Java community Proces)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签库,并由Apache的Jakarta小组来维护。开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度。

简介JSTL的英文全称是JavaServer Pages Standard Tag Library,中文全称是JSP标准标识库。JSTL技术标准是由JCP(lava Community Process)组织的JSR052专家组发布,Apache组织将其列入Jakarta项目,Sun公司将JSTL的程序包加入互联网服务开发工具包内(Web Services Developer Pack(WSDP)),作为JSP技术应用的一个标准。

JSTL标签是基于JSP页面的,这些标签可以插入在JSP代码中,本质上JSTL也是提前定义好的一组标签,这些标签封装了不同的功能,在页面上调用标签时,就等于调用了封装起来的功能。JSTL的目标是简化JSP页面的设计。对于页面设计人员来说,使用脚本语言操作动态数据是比较困难的,而采用标签和表达式语言则相对容易,JSTL的使用为页面设计人员和程序开发人员的分工协作提供了便利。

JSTL标识库的作用是减少JSP文件的Java代码,使Java代码与HTML代码分离,所以JSTL标识库符合MVC设计理念。MVC设计理念的优势是将动作控制、数据处理、结果显示三者分离。

产生背景在JSP诞生之初,JSP提供了在HTML代码中嵌入Java代码的特性,这使得开发者可以利用Java语言的优势来完成许多复杂的业务逻辑。但是,随后开发者发现在HTML代码中嵌入过多的Java代码,程序员对于动辄上千行的JSP代码基本丧失了维护能力,非常不利于JSP的维护和扩展。基于上述的这个问题,开发者尝试着使用一种新的技术来解决上面这些问题。因此,从JSP1.1规范后,JSP增加了自定义标签库的支持,提供了Java脚本的复用性,提高了开发者的开发效率。

JSTL是SUN公司发布的一个针对JSP开发的新组件。JSTL允许用户使用标签(Tags)来进行JSP页面开发,而不是使用传统的JSP脚本代码方式开发。JSTL几乎能够做到传统JSP脚本代码能做的任何事情1。

主要组成JSTL包含了和以下操作相关的标签:

1、核心标签:核心标签库是整个JSTL中最常用的部分,主要由以下几部分组成:基本输入输出、流程控制、迭代操作和URL操作。负责Web应用的常见工作,如:循环、表达式赋值、基本输入输出等。

2、I18N格式标签库:用来格式化显示数据的工作如:对不同区域的日期格式化等。

3、XML标签库:用来访问XML文件的工作,支持JSP对XML文档的处理。

4、数据库标签库:SQL标签库包括了大部分访问数据库的逻辑操作,包括查询、更新、事务处理、设置数据源等。可以做访问数据库的工作。

5、函数标签库:用来读取已经定义的某个函数。2

优点JSTL的优点如下:

1、简化了JSP和Web应用程序的开发。

2、在应用程序服务器之间提供了一致的接口,最大限度地提高了·Web应用在各应用服务器之间的移植。

3、允许JSP设计工具与Web应用程序开发的进一步集成。相信不久就会有支持JSTL的IDE开发工具出现。

4、以一种统一的方式减少了JSP中的Scriptlets代码数量,可以达到程序中没有任何Scriptlest代码。

JSTL封装了JSP开发中的常用功能。比如说,在没有JSTL时,通过Scriptlets来迭代输出某个List(Set),有了JSTL,就可以使用它的一系列的Tag进行迭代输出。由于JSTL是JSP2.0规范的一部分,所以最新的Web容器都会支持它3。

使用条件在JSP中使用JSTL标签需要具备如下两个条件。

条件一:要在JSP页面中使用JSTL标签,需使用taglib指令引用标签库。

条件二:要在JSP中使用JSTL标签,还需要下载安装JSTL实现(Implementation)。

JSTL1.2实现的下载地址为:https:jstl.dev.java.net,下载文件为jstl-impl-1.2.jar,将该文件复制到Web应用程序的WEB-INFlib文件夹中即可使用JSTL。

JSTL1.0实现的下载地址为:http://www.apache.org/dist/jakarta/taglibs/standard/,Windows用户下载jakarta-taglibs-standard-current.zip。下载后解压,在lib文件夹中有两个文件:

·jstl.jar;

·standard.jar.

将这两个文件复制到Web应用程序的WEB-INFlib文件夹中即可使用JSTL4。

本词条内容贡献者为:

孙锐 - 教授 - 合肥工业大学