Jsp中的自定义标签由浅到深详细讲解

从零搭建ROS机械臂仿真环境:Ubuntu 20.04+Noetic下配置睿尔曼RM65的完整流程 本文详细介绍了在Ubuntu 20.04系统中,基于ROS Noetic搭建睿尔曼RM65机械臂的完整仿真环境。从环境准备、工作空间创建到MoveIt!配置与Gazebo仿真环境集成,提供了完整的流程和优化建议,帮助开发者高效实现机械臂仿真与调试。 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 一、基本概念: 1.标签(Tag): 标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称和属性都是大小写敏感的 2.标签库(Tag library): 由一系列功能相似、逻辑上互相联系的标签构成的集合称为标签库。 3.标签库描述文件(Tag Library Descriptor): 标签库描述文件是一个XML文件,这个文件提供了标签库中类和JSP中对标签引用的映射关系。它是一个配置文件,和web.xml是类似的。 4.标签处理类(Tag Handle Class): 标签处理类是一个Java类,这个类继承了TagSupport或者扩展了SimpleTag接口,通过这个类可以实现自定义JSP标签的具体功能 二、自定义JSP标签的格式: 1. <% @ taglib prefix=”someprefix” uri=”/sometaglib” %> 为了使到JSP容器能够使用标签库中的自定义行为,必须满足以下两个条件: 1.从一个指定的标签库中识别出代表这种自定义行为的标签 2.找到实现这些自定义行为的具体类 第一个必需条件-找出一个自定义行为属于那个标签库-是由标签指令的前缀(Taglib Directives Prefix)属性完成,所以在同一个页面中使用相同前缀的元素都属于这个标签库。每个标签库都定义了一个默认的前缀,用在标签库的文档中或者页面中插入自定义标签。所以,你可以使用除了诸如jsp,jspx,java,servlet,sun,sunw(它们都是在JSP白皮书中指定的保留字)之类的前缀。   uri属性满足了以上的第二个要求。为每个自定义行为找到对应的类。这个uri包含了一个字符串,容器用它来定位TLD文件。在TLD文件中可以找到标签库中所有标签处理类的名称 2. <someprefix:sometag key=”somevalue”/>  当web应用程序启动时,容器从WEB-INF文件夹的目录结构的META-INF搜索所有以.tld结尾的文件。也就是说它们会定位所有的TLD文件。对于每个TLD文件,容器会先获取标签库的URI,然后为每个TLD文件和对应的URI创建映射关系。 在JSP页面中,我们仅需通过使用带有URI属性值的标签库指令来和具体的标签库匹配 三、自定义JSP标签的处理过程: 1.在JSP中引入标签库: 2.在JSP中使用标签库标签: 3.Web容器根据第二个步骤中的prefix,获得第一个步骤中声明的taglib的uri属性值 4.Web容器根据uri属性在web.xml找到对应的元素 5.从元素中获得对应的元素的值 6.Web容器根据元素的值从WEB-INF/目录下找到对应的.tld文件 7.从.tld文件中找到与tagname对应的元素 8.凑元素中获得对应的元素的值 9.Web容器根据元素的值创建相应的tag handle class的实例 10. Web容器调用这个实例的doStartTag/doEndTag方法完成相应的处理 四、创建和使用一个Tag Library的基本步骤: 1.创建标签的处理类(Tag Handler Class) 2.创建标签库描述文件(Tag Library Descrptor File) 3.在web.xml文件中配置元素 4.在JSP文件中引人标签库 五、TagSupport类简介: 1.处理标签的类必须扩展javax.servlet.jsp.TagSupport. 2.TagSupport类的主要属性: A.parent属性:代表嵌套了当前标签的上层标签的处理类 B.pageContex属性:代表Web应用中的javax.servlet.jsp.PageContext对象 3.JSP容器在调用doStartTag或者doEndTag方法前,会先调用setPageContext和setParent方法,设置pageContext和parent。因此在标签处理类中可以直接访问pageContext变量 4.在TagSupport的构造方法中不能访问pageContext成员变量,因为此时JSP容器还没有调用 setPageContext方法对pageContext进行初始化 六、TagSupport处理标签的方法: 1.TagSupport类提供了两个处理标签的方法: public int doStartTag() throws JspException public int doEndTag() throws JspException 2.doStartTag:但JSP容器遇到自定义标签的起始标志,就会调用doStartTag()方法。 doStartTag()方法返回一个整数值,用来决定程序的后续流程。 A.Tag.SKIP_BODY:表示…之间的内容被忽略 B.Tag.EVAL_BODY_INCLUDE:表示标签之间的内容被正常执行 3.doEndTag:但JSP容器遇到自定义标签的结束标志,就会调用doEndTag()方法。doEndTag ()方法也返回一个整数值,用来决定程序后续流程。 A.Tag.SKIP_PAGE:表示立刻停止执行网页,网页上未处理的静态内容和JSP程序均被 忽。略任何已有的输出内容立刻返回到客户的浏览器上。 B.Tag_EVAL_PAGE:表示按照正常的流程继续执行JSP网页 七、用户自定义的标签属性: 如果在标签中还包含了自定义的属性,例如: ... 那么在标签处理类中应该将这个属性作为成员变量,并且分别提供设置和读取属性的方法。 八、创建标签处理类的步骤: 1.创建包含JSP网页静态文本的文件(即是要替换自定义JSP标签的文本) 2.在Web应用启动时装载静态文本 3.创建标签处理类 九、如何创建包含JSP网页静态文本的文件: 1.使用java.util.Properties类来存放要替换网页中自定义JSP标签的静态文本 2.Properties类代表了一系列属性的集合,其实例既可以被保存到流中,也可以从流中加 载。这些文本以key/value的形式存放在WEB-INF目录下,例如key=value,在属性列表中 这些key/value都是String类型的 十、Properties类的常用API: 1.setProperty(String key, String value):调用Hashtable类的put方法添加属性 2.getProperty(String key):获取属性列表中key对应的属性值 3.load(InputStream in):从输入流对象InputStream中读取属性列表(Properties list) 4.store(OutputStream out,String comment):使用适当的格式将属性列表的属性对写入输 出流对象中,默认使用ISO-88590-1编码格式,以行的方式处理输入。属性的key/value之 间以”=、:”配对,以回车、换行分隔key/value对 十一、ServletContext类的常用API: 1.getContext(String uripath):返回服务器中uripath所代表的ServletContext对象 2.getInitParameter(String name):返回ServletConfig对象中name参数的值 3.getMineType(String file):返回file参数代表的文件的MIME类型 4.getRequestDispatcher(String path):返回path代表的RequestDispacher对象 5.getResourceAsStream(String path):以输入流的形式返回path对应的资源,在输入留中对象可以为任意形式的数据,path参数必须以“/”开始且相对于Context Root 十二、如何使用ServletContxt读取并保存属性文件: 1.创建java.util.Properties类对象 2.获取ServletContext对象 3.将属性文件以输入流的形式读入到某个输入流对象中 4.将输入流对象加载到Properties对象中 5.将Properties对象保存到ServletContext对象中 十三、如何在Web应用启动时装载静态文本: 1.创建继承了HttpServlet类的子类,在web.xml中配置这Servlet时设置load-on-startup属性: someclass somepackage.SomeClass1 2.在这个Servlet的init()方法中创建java.util.Properties类 3.获取当前Web应用的ServletContext对象 4.将WEB-INF目录下的属性文件读入到输入流InputStream中: InputStream in = context.getResourceAsString("WEB-INF/someproperties.properties"); 5.将输入流加载到属性对象中 ps.load(in); 6.将属性对象保存到上下文中。 context.setAttribute("attributeName",ps); 十四、如何创建标签处理类: 1.引入必需的资源: import javax.servlet.jsp.*; import javax.servlet.http.*; import java.util.*; import java.io.*; 2.继承TagSupport类并覆盖doStartTag()/doEndTag()方法 3.从ServletContext对象中获取java.util.Properties对象 4.从Properties对象中获取key对应的属性值 5.对获取的属性进行相应的处理并输出结果 十五、创建标签库描述文件(Tag Library Descriptor): 1.标签库描述文件,简称TLD,采用XML文件格式,定义了用户的标签库。TLD文件中的元素可以分成3类: A.:标签库元素 B.:标签元素 C.:标签属性元素 2.标签库元素用来设定标签库的相关信息,它的常用属性有: A.shortname: 指定Tag Library默认的前缀名(prefix) B.uri: 设定Tag Library的惟一访问表示符 3.标签元素用来定义一个标签,它的常见属性有: A.name: 设定Tag的名字 B.tagclass: 设定Tag的处理类 C.bodycontent: 设定标签的主体(body)内容 1).empty:表示标签中没有body 2).JSP:表示标签的body中可以加入JSP程序代码 3).tagdependent:表示标签中的内容由标签自己去处理 4.标签属性元素用来定义标签的属性,它的常见属性有: A.name:属性名称 B.required:属性是否必需的,默认为false C.rtexprvalue:属性值是否可以为request-time表达式,也就是类似于的表达式 十六、在Web应用中使用标签: 1.如果Web应用中用到了自定义JSP标签,则必须在web.xml文件中加入元素,它用于声明所引用的标签所在的标签库 /sometaglib /WEB-INF/someTLD.tld 2.:设定Tag Library的惟一标示符,在Web应用中将根据它来引用Tag Libray 3.:指定和Tag Library对应的TLD文件的位置 4.在JSP文件中需要加入 5.prefix表示在JSP网页中引用这个标签库的标签时的前缀,uri用来指定Tag Library的标识符,它必须和web.xml中的属性保持一致。
11、硬件工程师笔试面试——IGBT(2025版本) IGBT的应用展望与创新趋势表明,随着电子技术的不断发展,IGBT在各个领域都有广泛的应用,如高压电力系统、交通工具、电锅炉、太阳能和风能发电系统等。FS型IGBT(场终止型绝缘栅双极晶体管)在电力传输领域的应用中,通过其独特的设计和特性,有助于确保系统的稳定性和安全性。每种器件都有其独特的优势,能够满足电力传输系统中不同的技术要求。FS型IGBT通常具有正温度系数,这意味着随着温度的升高,导通压降的主要影响因素是载流子迁移率的降低以及集电极和发射极的接触电阻的增加,有助于在高温下维持稳定的性能。 阅读详情

相关推荐

UE5动画革命:如何用Motion Matching技术让你的游戏角色动作更流畅(附实战配置)

本文深入解析了UE5中Motion Matching技术的实战配置与应用。通过对比传统动画状态机的局限,详细阐述了如何构建动画数据库、在UE5中配置Pose Search Database及动画蓝图,并探讨了与IK融合、性能优化等进阶策略。该技术能显著提升游戏角色动作的流畅度与真实感,是下一代动画解决方案的核心。

weixin_29075633的博客 865

jsp tag 自定义标签实现按钮的显示

前些天在一个项目中做了一个最基本的权限管理(标准的权限结构,用户-角色-菜单),后来需要精确地控制到按钮就想到了使用自定义标签(jsp tag)来处理按钮的显示与隐藏。 下面是我参考网上的资料自己写的一个自定义标签的demo: 首先自定义标签类: package com.vanfon.p2p.admin.core; import javax.servlet.http.HttpServlet

9827

NX二次开发编译时dll自动数字签名及拷贝

在UG5.0开始,所有基于UG二次开发的DLL都要“签名”后才能被客户端上正版的NX调用。

菜鸟爱飞不飞的博客 2686

JSP页面中常用四种标签

JSP页面常用四种标签: 1. EL表达式:  ${} 2. jstl表达式(sun apache):   uri="http://java.sun.com/jsp/jstl/core" %>  uri="http://java.sun.com/jsp/jstl/functions" %>  uri="http://java.sun.com/jsp/jstl/fmt" %> 3.

好习惯要坚持下去 2万+

避坑指南:用Adams做滚珠丝杠仿真时90%人会遇到的3个建模错误

本文针对使用Adams进行滚珠丝杠动力学仿真时常见的三大建模错误,提供了详细的避坑指南。重点解析了如何避免因直接导入CAD几何体导致的性能与精度问题,科学设置接触参数以提升计算效率与结果平滑度,以及通过规范的命名与组织管理模型,确保仿真过程高效可靠。

gin88的博客 574

【Tessent Shell Users Manual】【Ch3】Design Introspection and Editing(未完待续)

Tessent Shell 提供了一系列用于检查(examining/introspecting)和编辑design的命令。

Tranquil_ovo的博客 1731

[转]由浅到深详细讲解JSP自定义标签

由浅到深详细讲解JSP自定义标签 一、基本概念1、标签(Tag)标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称和属性都是大小写敏感的。2、标签库(Tag library)由一系列功能相似、逻辑上互相联系的标签构成的集合称为标签库。 3、标签库描述文件(Ta

臣臣的小家 709

3D IC中Memory-on-Logic堆叠测试的DFT解决方案与工程实践

在半导体行业,随着摩尔定律逼近物理极限,3D IC技术通过芯片垂直堆叠实现性能提升和异构集成,已成为重要发展方向。其核心原理是利用硅通孔(TSV)或微凸块实现芯片间电气互连,将多个不同功能的芯片(如逻辑芯片与存储芯片)集成在一个封装内。这项技术的核心价值在于能大幅提升系统性能、降低功耗并实现更小的封装尺寸。然而,芯片堆叠后,传统的测试方法面临巨大挑战,尤其是测试访问存在物理屏障,无法直接探测被覆盖的芯片接口。为此,可测试性设计(DFT)成为确保3D IC可靠性与量产可行性的关键技术。它通过在设计阶段植入专用

weixin_42521058的博客 632

由浅到深详细讲解JSP自定义标签——转载

  由浅到深详细讲解JSP自定义标签     一、基本概念 1、标签(Tag) 标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称和属性都是大小写敏感的。 2、标签库(Tag library) 由一系列功能相似、逻辑上互相联系的标签构成的集合称为标签库。 ...

ziwuzu的博客 144

人工智能在慢病管理中的具体应用全集:从技术落地到场景创新

这一成果的取得,得益于 AI 对居民血压数据的实时监测和分析,以及及时的干预措施。据统计,医疗支出下降了 18%,这主要是由于 AI 慢病管理系统实现了对慢病患者的早筛早诊早治,减少了并发症的发生,降低了医疗资源的浪费,从而减轻了患者和社会的医疗负担。医院信息系统(HIS)、电子病历(EMR)、区域卫生平台、可穿戴设备(如三诺血糖仪、华为手环)、第三方健康APP以及体检中心的数据往往采用不同的数据标准和格式(如HL7、FHIR、JSON、CSV等),且存储在相互隔离的系统中,形成典型的数据孤岛。

AllenLV的博客 2096

ardupilot开发 --- MavLink 篇

ardupilot开发 --- MavLink 篇

记录老板的每次pua,分享领导每天的毒鸡汤... 4252

java自定义jsp标签_自定义JSP标签由浅到深详细讲解

一、基本概念:1.标签(Tag): 标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称和属性都是大小写敏感的2.标签库(Tag library): 由一系列功能相似、逻辑上互相联系的标签构成的集合称为标签库。3.标签库描述文件(Tag Library Descriptor): 标签库描述文件是一个...

weixin_29901515的博客 397

YOLOv8安防监控实战:跌倒/闯入/徘徊实时检测(附TensorRT加速+声光报警部署代码)

精准性:针对跌倒/闯入/徘徊的行为特征优化,准确率达89.3%,误报率低于5次/天;实时性:TensorRT加速到50+FPS,报警延迟<1秒,满足安防“黄金响应时间”;低成本:无需专用AI芯片,RTX 3060或Jetson Orin就能跑,硬件成本比传统方案低60%;易部署:代码全开源,提供从模型训练到硬件联动的完整流程,2天即可搭起原型系统。如果你的安防监控还在“漏报误报”“响应慢”,建议先从跌倒检测的姿态过滤改起——用100张样本测试,再集成TensorRT加速,90%能看到明显改善。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 681

Jsp中的自定义标签由浅到深详细讲解2

context.setAttribute("attributeName",ps); 十四、如何创建标签处理类: 1.引入必需的资源: import javax.servlet.jsp.*; import javax.servlet.http.*; import java.util.*; import java.io.*; 2.继承TagSupport类并覆盖doStartTag()/doEndTa

翔的窝窝 434

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

由浅到深详细讲解JSP自定义标签

一、基本概念 1、标签(Tag) 标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称和属性都是大小写敏感的。 2、标签库(Tag library) 由一系列功能相似、逻辑上互相联系的标签构成的集合称为标签库。 3、标签库描述文件(Tag Library Descriptor) 标签库描

⑥②专栏 1912

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

JSP自定义标签由浅到深详细讲解(全)

一、基本概念 1.标签(Tag):   标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称和属性都是大小写敏感的   2.标签库(Tag library):   由一系列功能相似、逻辑上互相联系的标签构成的集合称为标签库。   3.标签库描述文件(Tag Librar

何成俭的博客 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

JSP自定义标签由浅到深详细讲解

一、基本概念:    1.标签(Tag):    标签是一种XML元素,通过标签可以使JSP网页变得简洁并且易于维护,还可以方便地实现同一个JSP文件支持多种语言版本。由于标签是XML元素,所以它的名称 和属性都是大小写敏感的    2.标签库(Tag library):    由一系列功能相似、逻辑上互相联系的标签构成的集合称为标签库。    3.标签...

刘俊逸 170
上一篇: 新闻:Java开源,主将辞职
下一篇: 通过JDBC连接Oracle的十大灵活技术
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值