jsp标签库解析

jsp中jstl标签库core全解析 首先来认识一下jstl: 下面来介绍一下核心标签库: 前言:jstl是用来辅助el表达式,用来在jsp页面显示复杂结构的数据 一::       查看c.tld可知:   Like , but for expressions. out org.apache.taglibs.standard.tag.r 阅读详情

为什么要把jsp选作自己主要的服务器端应用程序编写工具呢?当然,jsp迷人的特性和功能不少,但标签库是让我做出这一决定的最重要诱因之一。
为什么这样说呢?原因有两个:维护和开发速度。服务器端脚本语言其实就像是开发internet的熔炉。在一个服务器页面上,你可以很方便地混合各种不同的脚本方法和对象。这种页面简直就是建筑web的混凝土。正是这种“材料”的混合给予了服务器端脚本强大的信息处理能力。它可以让服务器端程序设计人员开发出动态的、灵活的web页面。但是,另一方面,脚本的自由混合却很难得到维护,特别是随着项目规模的不断增长而显得尤其严重。我们将不得不让有经验的程序员来建立和维护最终产品,结果让这些程序员成为了一般的web设计人员。服务器端应用程序在最终的图形设计和实现这两方面上就弱化了。更糟糕的是,因为这些页面对代码而言变得很复杂,开发速度也就相应降低了。最后,许多中等规模或者大型的服务器端web应用程序很晚才得以推出而且成本也无法控制。此外,在实现了这些应用程序之后,许多销售商还必须去寻找合格的程序员来维护这种乱得如同一盆意大利面条似的代码。
我们谁都不愿意看到这样的结果,所以,为了克服这个问题,asp引进了com对象技术,而jsp则提供了j2ee作为对策。这些解决方案都是建立在集中的、可重用代码库的机制之上。但是,他们使用起来可就太难了,耗费的时间也很多。还有,这些解决方案并没有减少建立混乱代码的诱惑,结果,我们只能组织起大型的、内部结构良好的开发团队来使用这些技术。这就意味着,尽管我们目前都已经有了建立大型项目的以上方法,中等规模的项目却没有被这些技术所光顾。
可现实是,中等规模的项目才是web应用程序中的主体部分。所以,许多项目不得不面对其开发和维护环境不能满足其需要的局面。
幸好,jsp为我们提供了解决这一问题的最佳方案,标签库(tag libraries)提供了建立可重用代码块的简单方式。但是和com和j2ee不同的是,你不需要掌握任何额外的技能就可以建立标签库:如果你会编写jsp页面,你就会建立标签库。最后,标签库还改进了web应用程序的维护性。这种对维护性的改进表现在:轻易地在jsp页面上就实现了基于xml的可定制接口。结果可想而知,web设计人员可以建立jsp web应用程序而无需知道jsp是怎么回事。这样一来,web开发就成为一项非常富有效率的团队开发任务了。jsp程序员可以建立定制的标签和后端代码模块,而web设计人员则可以使用定制标签并且全力关注于web设计本身。标签库解决了代码混乱的问题,而且做得干净漂亮(事实上,xml才是解决这些问题的本质所在,但是标签库还是起到了相当关键的作用)。
什么是标签库?
jsp标签库(也被称作定制标签)是一种通过javabean生成基于xml的脚本的方法。从概念上将,标签就是很简单而且可重用的代码结构。比方说,在我们最新发布的jspkit(在jsp insider内)中,我们就使用xml标签实现了对xml文档的轻松访问。请看以下的清单a。
清单a:执行xml/xsl 转换的示例标签及其所在的html页面
< %@ taglib uri="http://www.jspinsider.com/jspkit/jaxp" prefix="jaxp"%>
< jaxp:transformertag>
< jaxp:xmlfile>c:/xml/example.xml< /jaxp:xmlfile>
< jaxp:xslfile>c:/xml/example.xsl< /jaxp:xslfile>
< /jaxp:transformertag>
以上的示例使用了简单的标签来访问处在幕后的更强大代码。在以上的事例中首先装载了一个xml文件,然后应用了一个xsl文件来创建一个将被发送到客户端的结果??这一切不过仅仅只是用了一个很简单的标签。
定制标签使得jsp项目中很容易创建重用的开放源代码模块。而你的全部需要不过就是标签库及其文档。标签库的重要特性如下所示:
易于安装在多个项目上
标签很容易从一个jsp项目迁移到其他项目。一旦建立了一个标签库,你只需要把这个个标签库包装成一个jar文件就可以在其他jsp项目中重新使用了。不能重用的是你作为程序员在建立标签时所加进标签的内容。因为标签可以重新使用,所以标签库可以轻松地用于你自己的项目。目前,最好的标签资源可以在jsptags.com这个站点找到。.
扩展jsp
标签库可以具备jsp规范(jsp 1.2)中的任何特性和功能。这也意味着你拥有了无限的能力可以扩展和增加jsp的强大功能却无需等待新版本jsp的发布。所以说,你完全可以取消页面上的jsp include调用了??只需用include标签建立自己的规范就可以了。
易于维护
标签库使得jsp web应用程序变得很容易维护。主要有以下几个原因:
标签对任何人而言都很容易使用、易于理解。
你的所有逻辑都驻留在处于中心的标签处理器和javabean内。这样一来,如果你不得不更新你的代码,你只需要处理这些中心文件而无需修正使用这些代码的其他页面。
如果你需要增加新的功能,你不必改变任何已经存在的页面。你可以把额外的属性包含到你的标签内从而引进新的行为同时保留以前的属性,实现旧页面的正常运行。
比方说,你可能有如下的一个标签,它让你的文本都显示蓝色:
< bluetext>my text< /bluetext>
但是随着项目的进行,你又想让蓝色变暗。于是你保留自己的标签但是为其增加了一个新的属性:shade
< bluetext shade="teal">my text< /bluetext>
所有的老标签继续显示蓝色,但现在你可以使用同一标签来产生变暗的蓝色文本了。
标签提升了代码的重用性。那些经过多次测试和使用的代码肯定具有更少的bug。所以,使用定制标签的jsp页面也同样具有更少的缺陷,维护起来自然方便多了。
更快的开发速度
标签库是一种重用代码的好办法。我们知道,服务器端语言标准的重用代码方式是使用模版。标签库和模版库这种方式相比则好得多。采用模版库,你就需要针对每个项目修改模版或者建立生硬的接口。标签库则没有这些限制,而其所具有的面向对象特性则让标签库不仅用法灵活而且扩展能力极为强大。还有,因为你重用代码,结果在项目开发上花费的时间就大大降低了,而更多的时间则可以用来设计自己的web应用程序。标签库的简单接口使得这些代码用法简单、易于调试。
虽然标签库用起来特别简单,但是,建立其内部支持层次可比建立简单的javabean复杂多了。这种复杂性的主要原因在于标签库包含了好几个部分。而你所需要掌握的技能不过是理解、熟悉java和jsp。
定制标签内幕
一个简单的定制标签包括了以下几个要素:
javabean:为了充分利用java的面向对象特性,重用代码应当放置在独立的代码容器内。这些javabean可不是标签库的一部分。他们是标签库用来执行所分配任务的基础代码模块。
标签处理器:这是标签库的真正核心。标签处理器(tag handler)引用它所需要的任何外部材料(javabean)并且负责访问jsp页面的信息(pagecontext对象)。而jsp页面则把页面上设置的标签属性都传递给标签处理器,jsp页面上的标签标示的内容也是这样处理的。当标签处理器完成其处理过程,它就会把处理后的输出结果回送给jsp页面做进一步处理。
标签库描述符(tld文件):这是一种很简单的xml文件,tld文件描述和说明了属性、信息和标签处理器文件位置等信息。jsp 容器使用这一文件来映射被调用标签库的位置和用法。
web站点的web.xml文件:其实这就是你的web站点上的初始化文件。在这个文件内你可以定义web应用程序中使用的定制标签,还可以定义用来描述每个定制标签的tld文件。
发布文件(war或jar文件):如果你打算重用定制标签,那么你肯定需要想个简便的办法把标签从一个项目迁移到其他项目中去。把标签库打包成一个jar文件就是这种既方便又高效的标签库发布方式。我们在以上的事例中没有建立jar文件,但是如果你打算更进一步地了解jar文件的细节,你不妨阅读“jsp war文件简介”。
jsp页面上的标签库声明:仅需使用标签库标示符即可方便地声明页面上存在的标签。标签库在页面上声明之后,你就可以随意使用它们了。
看起来会让你忙乎一阵子,实际上没那么糟糕。刚开始用的时候当然会有点棘手。其实真正关键的并不是编码而是把以上各个部分正确地组织起来。这种层次性的结构是很重要的,也正是如此才可以说标签库及灵活又易于使用。更重要的事,这些层次可以让整个建立标签库的过程都能通过jsp ide自动完成。今后的jsp ide更可以自动完成创建定制标签的大部分工作,而你自己则只需要负责建立代码和标签处理器。
(注意:一个标签处理器只定义一个定制标签;而一个标签库则是很多个标签处理器的集合,它们执行同一任务。)
建立你的第一个标签
以下的进阶指南将介绍如何把jsp扩展为具有自己的html编码功能。这种编码方法用< 和>符号代替html代码,而且很容易经过扩展以执行其他编码操作。整个示例虽然简单,但它确实向你说明了定制标签的最基础要素。
创建javabean
代码中的任何可重用部分都应该包含在javabean内。这一点是很重要的。这样你就可以在其他项目中重用这些代码了。由于任何放置在标签处理器内的代码都不会在标签以外被重用,所以代码的重用部分要与之分离。在我们的示例中,html编码逻辑很一般,所以我们直接把他们放在了javabean内,请参看清单b。
创建标签处理器
标签处理器使用了清单c的代码。
这些代码很简单,其中包括:
读取包含在打开和关闭标签内的文本。
调用html编码函数。
将结果返回给jsp页面。
创建标签描述符
我们需要描述自己的标签以便系统知道他们到底具有什么含义。tld文件通常就以标签处理器命名并被存放在"/web-inf/"目录之下。该文件的文件扩展名是.tld。请参看清单d。
更新web xml文件
现在你就可以告诉jsp容器使用标签库了。为此你需要修改web.xml文件:增加一个taglib项以注册标签库并为标签分配一个uri。uri是web站点上唯一应用于这一特定标签的索引。由于标签今后还可能用在不同的web站点上,所以你最好采用完整的url和/或者包名字(package name)来保证这一唯一性。示例代码请参看清单e。 
          (责任编辑:包春林)


《JSP 标准标签库(JSTL)》深入解析与应用 JSTL(JavaServer Pages Standard Tag Library)是一个开源的JSP标签库,它提供了多种标签,用于简化JSP页面的开发。核心标签库(Core Tags):提供基本的标签,如循环、条件判断等。格式化标签库(Formatting Tags):用于格式化数据,如日期、数字等。SQL标签库(SQL Tags):用于执行数据库操作。XML标签库(XML Tags):用于处理XML文档。本文对JSP标准标签库(JSTL)进行了深入解析,并介绍了其在实际开发中的应用。 阅读详情

相关推荐

33、Java JSP 标签库开发全解析

本文详细解析了Java JSP标签库的开发过程,涵盖标签库描述符(TLD)的定义、WebLogic服务器中部署描述符的配置、JSP中自定义标签的使用、标签解析流程、TagExtraInfo类的编写,以及关键标签处理类的代码分析。同时,还总结了常见问题及其解决方法,并通过示例展示了如何在实际JSP页面中使用标签库提升开发效率和可维护性。

y2z3a4b5c的博客 118

JSP自定义标签

很多与“ML”结尾的语言都是标记语言,比如:HTML,XML,XHTML,VML等等。比如HTML的运行环境时浏览器,XML也要自己的解析和运行的环境。 标签体 在一些标签不能满足我们代码所需的一些要求了,这个时候就需要自己去定义了如果没有标签体,那么doAfterBody方法不会执行即默认设置此时jsp上有标签体,人为将doStartTag...

m0_61148761的博客 296

34、WebLogic JSP 标签库与 EJB 技术全解析

本文全面解析了WebLogic中JSP标签库和EJB技术的应用。首先介绍了WebLogic JSP标签库,包括表单验证标签和自定义标签的使用方法及其作用;接着探讨了WebLogic EJB-to-JSP集成工具及EJB技术的核心概念、架构和访问模型;随后详细分析了EJB的不同类型,包括会话Bean、实体Bean和消息驱动Bean的特性及适用场景;最后总结了如何通过合理运用这些技术提升企业级Web应用的开发效率和可维护性。

y2z3a4b5c的博客 65

学会怎样使用Jsp 内置标签、jstl标签库及自定义标签

学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签。 jsp标签的分类:   1)内置标签(动作标签): 不需要在jsp页面导入标签   2)jstl标签: 需要在jsp页面中导入标签   3)自定义标签 : 开发者自行定义,需要在jsp页面导入标签 ...

weixin_34331102的博客 436

29、Java Web开发:JSP与标签库的深度解析

本博客深入解析了Java Web开发中的JSP和标签库技术。内容涵盖JSP的基本概念及其与Servlet和MVC模式的关系,标签库的组成与优势,以及如何开发、部署和集成标签库到Web应用程序中。通过实际案例演示了创建自定义标签的完整流程,并介绍了标签库描述符(TLD)文件的结构和作用。此外,还探讨了标签库在代码复用、分离关注点和提升可维护性方面的应用价值。适合Java Web开发者深入学习和实践使用。

flink9streamer的博客 55

33、JSP 标签库开发全解析

本文详细解析了 JSP 标签库的开发过程,包括标签库描述符(TLD)的定义、Web 应用部署描述符的配置、标签扩展的使用以及 TagExtraInfo 类的编程。通过这些内容,开发者可以提高 JSP 代码的复用性和可维护性,实现高效的 Web 开发。文章还提供了具体的代码示例和配置步骤,帮助读者全面掌握 JSP 标签库开发的核心技术。

bert9linguist的博客 108

html教程:收集的常用的html标签(6)

是对於一些引用的文件,假如引用的部分不长。那麽可以考虑使用这一个标签,这一个标签是html3.0的新语法。 (显示时通常会内缩)blockquote是用来表示区域内的文件是引用某个人或是某份文件内的资料的。通常引用的文字假如利用与 强烈强调 (通常以黑体显示) 这一个非凡加强语气的字元是strong这个与 引用语句 (通常以斜体显示) 利用 与 将引用他人的话标记起来 这

384

JSP标签库与EL表达式深入解析

本文深入探讨了JSP标签库的使用和管理,以及EL(表达式语言)的语法和应用。详细介绍了标签库指令的编写、标签处理器的实现、TLD文件的结构,以及如何在JSP页面中通过taglib指令使用自定义标签。此外,还解析了EL表达式如何简化Java Bean和请求数据的访问,展示了EL中隐式对象的使用和会话管理。最后,讨论了JSP中MVC架构的角色和重要性。

weixin_30995917的博客 281

jsp标签内部解析及自定义——1

文章目录标签引用属性解析标签助手类 大家好,今天要与大家分享的是jsp标签,说到jso标签,大家可能问这是什么, jsp标签:(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。 根据jsp提供的功能,可以分为5个类别: 1,核心标签 2,格式化标签 3,JSTL 函数 4,SQL 标签 5,XML 标签 今天要和大家分享的是第一个:核心标签的部分。 标签引用 核心标签是大家用...

大屌的博客 415

JSP JSTL 标签库详解 (一个不漏)

JSP JSTL 标签库详解 (一个不漏)

JSP 标准标签库(c标签库)

jsp页面使用C标签,需要在页面引入c标签库 JSP 标准标签库(JSTL)

JSP的解析

JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。语法:语法:设计出更加动态,内容丰富的HTML页面。

weixin_66107850的博客 895

jsp标签解析与示例

博文链接:https://congpeixue.iteye.com/blog/158164

解析JSP中标签库

标签库Taglib 标签被定义和分布在一个称为标签库的结构中,一个标签库是由元信息和类组成的集合: 1.标签处理器:实现定制标签功能的Java类。 2.标签附加信息(TEI):向JSP容器提供边辑以确认标签属性和创建变量的类。 3.标签库描述器(TLD):描述单个标签和整个标签库属性的XML文档。 标签处理器和标签附加信息需要定位在JSP容器类载入器可以找到的地方。标签库描述器可

lianjinglei的专栏 450

后台扫描工具 - 御剑(珍藏版)附下载

版本说明:御剑后台扫描珍藏版 下载地址:安装包放下方网盘里了 链接:https://pan.baidu.com/s/1Bn7GtWb7AStcjzVahFOjSQ 提取码:zkaq 使用环境:windows 标题工具说明: 御剑后台扫描珍藏版是T00LS大牛的作品,方便查找用户后台登陆地址,同时也为程序开发人员增加了难度,尽量独特的后台目录结构。 附带很强大的字典,字典我们也是可以自己修改的,继续增加规则。 一、御剑后台扫描工具简介: 1、扫描线程自定义:用户可根据自身电脑的配置来设置调节扫描线程 2、

hackzkaq的博客 4万+

nginx配置视频流加密防盗链(一)安装nginx插件

前段时间研究了一下视频流的简单加密防盗链,参考了很多文章,最后总算搞出来了。现在自己总结了一下。

u013294657的博客 1870

JSP标签库解析

为什么要把JSP选作自己主要的服务器端应用程序编写工具呢?当然,JSP迷人的特性和功能不少,但JSP标签库是让我做出这一决定的最重要诱因之一。 为什么这样说呢?原因有两个:维护和开发速度。服务器端脚本语言其实就像是开发Internet的熔炉。在一个服务器页面上,你可以很方便地混合各种不同的脚本方法和对象。这种页面简直就是建筑Web的混凝土。正是这种“材料”的混合给予了服务器端脚本强大的信息处理能...

iteye_5347的博客 169

一文入门Qwen-Agent【附实战代码】

Qwen-Agent 是一个开源框架,用于开发基于 Qwen 模型的 AI 智能体应用,一文带你入门使用

m0_55303420的博客 1875

JSTL标签库实战解析:告别Scriptlet,打造清爽JSP页面

在JavaWeb开发中,JSP页面常常因混入大量Scriptlet代码而变得难以维护。JSTL(JavaServer Pages Standard Tag Library)作为标准标签库,通过语义化标签取代繁琐的Java片段,结合EL表达式实现数据访问与逻辑判断,能够显著提升页面可读性与开发效率。本文从标签库的核心原理出发,系统拆解c:forEach、c:if、c:choose、fmt:formatDate等高频标签的实际用法,并针对标签引入失败、EL表达式不解析、中文乱码等常见坑位给出排查方案,同时讨论循

weixin_29248653的博客 300

Notion vs 飞书文档深度对比:个人知识管理到底该选谁?2026实测报告

本文基于2026年30天深度实测,对比了Notion与飞书文档在个人知识管理(PKM)场景下的核心差异。Notion以“块”为基石,提供高度自由的结构化能力,适合构建个性化知识网络;飞书文档则深度融入协作生态,强调流程效率与团队协同。报告从设计哲学、核心功能、AI能力、成本生态等多维度剖析,助你根据自身对灵活性与协作性的需求做出选择。

weixin_29248313的博客 1396

从零构建:基于Docker与FRR的OSPF虚拟网络实验室

本文详细介绍了如何利用Docker与FRR构建OSPF虚拟网络实验室,从环境设计到高级网络拓扑配置,再到实验验证与排错。通过容器化技术实现高效资源利用和快速部署,特别适合网络协议教学、企业网络架构验证等场景。

plum99的博客 223

2 springMVC详解(视图解析器)

1 理解视图解析 视图解析器首先往视图逻辑名上添加前后缀,找到渲染模型的JSP文件(也可以不是JSP),使用JSP对模型进行渲染。简而言之,就是对模型进行渲染,并将渲染后的视图发送给浏览器。 作用:如果控制器中的方法直接负责产生HTML的话,就很难在不影响请求处理逻辑的前提下,维护和更新视图。只返回一个视图逻辑名,控制器方法和视图的实现会在模型内容上达成一致,这是两者的最大关联,除此之 外...

人生智慧的博客 2172

【杰理AC696X】ADKEY复用指示灯不定时出现灯不亮或按键失灵的问题

测试SDK版本:《ac696n_soundbox_sdk_v1.5.0-20211217》ADKEY复用指示灯的做法多用于蓝牙小音箱,IC引脚越来越少,复用也就用的越多了,不过,在使用前应评估好功能,因为复用的做法,肯定会牺牲点东西的,如果体验感啥的。 比如这个图,(V-)按键按下时,LED是会一直导通发光的,按不同阻值的按键还有亮度不一致的问题,这样的问题有的客户是不接受的,这就要另寻他法了。某天调好案子,放在一边测试时,发现指示灯不亮了,按键也不起作用,想起之前AC692系列也有类似的问题,很快就定位到

xx842678的博客 1656

在 JSP 文件的头部代码的指令和标签库声明

在 JSP 文件的头部看到的这段代码,包含了一些指令和标签库声明。它们的主要作用是配置页面的处理方式和引入一些特定功能的 JSP 标签库。这些标签库提供了一些标准的和自定义的标签,用于简化开发过程。让我们逐行解析这段代码的作用,并结合实际案例进行详细解释。

孔乙己的博客 603

RK3588 C-PHY摄像头驱动升级踩坑记:从‘Only CSI2 supported’报错到成功取流

本文详细记录了在RK3588平台上调试C-PHY摄像头驱动的全过程,从‘Only CSI2 supported’报错分析到成功取流。内容涵盖C-PHY与CSI-2协议差异、SDK版本对比、V4L2框架下的bus-type解析机制,以及硬件排查与寄存器调优实战经验,为嵌入式Camera驱动工程师提供宝贵参考。

weixin_42522374的博客 125

【Dify】知识库智能检索应用

本文介绍了一个基于大语言模型的知识库检索系统,实现从自然语言提问到智能回答的自动化流程。该系统通过知识检索节点定位相关信息,利用重排序模型优化结果,最后由大语言模型生成自然语言答案。核心模型包括InternLM2-7B和BCE重排序模型。工作流程包含输入问题、检索重排序、智能生成和答案输出四个阶段,适用于企业知识管理、客户支持、教育培训等多种场景,能显著提升信息检索效率和准确性。文章还提供了相关开发文档链接,涵盖AIGC工具平台搭建、常见问题解决等内容。

Mr数据杨 1003
上一篇: it头条:微软发布beta版ie8浏览器
下一篇: jsp/servlet:j2ee开发环境配置个人总结
Labber
博客等级 码龄19年 26粉丝 1976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值