JavaWEB——简单标签简单总结

java web 标签大全 NULL 博文链接:https://fly533.iteye.com/blog/784117 立即下载

自定义标签:

  什么是自定义标签?

用户定义的一种自定义的jsp标记 。当一个含有自定义标签的jsp页面被jsp引擎编译成servlet时,tag标签被转化成了对一个称为 标签处理类 的对象的操作。于是,当jsp页面被jsp引擎转化为servlet后,实际上tag标签被转化为了对tag处理类的操作。 

自定义标签有什么用

•自定义标签可以降低 jsp 开发的复杂度和维护量,从html 角度来说,可以使 html 不用去过多的关注那些比较复杂的商业逻辑(业务逻辑)。
•利用自定义标签,可以软件开发人员和页面设计人员合理分工:页面设计人员可以把精力集中在使用标签(HTML,XML或者JSP)创建网站上,而软件开发人员则可以将精力集中在实现底层功能上面,如国际化等,从而提高了工程生产力
•将具有共用特性的tag库应用于不同的项目中,体现了软件复用的思想。 

自定义标签的开发步骤:

1.编写完成标签功能的Java类(标签处理器)

2.编写标签库描述文件(tld文件),在其中对该标签进行描述

3.在JSP页面导入并使用该标签


1.编写完成标签功能的Java类(标签处理器):

其实它就是一个Java类,只是实现了某个接口或者继承了某一个类。可以实现javax.servlet.jsp.tagext.SimpleTag接口或者

继承SimpleTagSupport该类。

若实现接口,需要实现它的若干个方法:doTag(),setParent(JspTag parent);getParent(); setJspContext(JspContext pc);setJspBody(JspFragment jspBody).其中最重要的是doTag()方法。看方法名就知道,咱们需要把该标签需要实现的功能的代码写在该方法里面。setJspContext(JspContext pc)也很重要,它把代表JSP引擎的pageContext传给标签处理类,它先于doTag()方法。

private PageContext pageContext;
	@Override
	public void setJspContext(JspContext pc) {
		// TODO Auto-generated method stub
		this.pageContext=(PageContext) pc;
		
	}
有了pageContext就可以得到页面的其他8个隐含对象,如out,response,request等等,咱们就可以利用这些隐含对象去实现咱们想让它实现的功能。所以JSP页面能做的,标签都能做。

若是选择用继承SimpleTagSupport类的方法,则咱们需要重写doTag()方法。那pageContext对象去哪得到呢?翻开API,看到有个getJspContext()方法,得到JspContext对象,然后强制转型为pageContext对象即可。

比如咱们现在只需要简单的在浏览器界面上输出“hello".

doTag()方法:

public void doTag() throws JspException, IOException {
		System.out.println("doTag");
	HttpServletRequest request =(HttpServletRequest) pageContext.getRequest();
	pageContext.getOut().println("Hello"+request.getParameter("name"));
	
	}

2.编写标签库描述文件(tld文件),在其中对该标签进行描述:

<?xml version="1.0" encoding="UTF-8" ?>

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
    version="2.0">
    <!-- 描述TLD文件 -->
  <description>MyTag 1.0  core library</description>
  <display-name>MyTag core</display-name>
  <tlib-version>1.0</tlib-version>
  <!--  建议在JSP页面上使用的标签前缀-->
  <short-name>mytag</short-name>
  <!--  作为tld文件的id,用来唯一标识当前的tld 文件,多个tld文件的Uri不能重复。通过
  JSP页面的taglib 标签的Uri属性  来引用-->
  <uri>http://www.mytag.com/mytag/core</uri>
  
  <!-- 描述自定义的helloSimpleTag	标签 -->
  <tag>
  				<!-- 标签名 ,在JSP 页面上使用标签时的名字-->
  			<name>hello</name>
  			<!-- 标签所在的全类名 -->
  			<tag-class>tag.HelloSimpleTag</tag-class>
  			<!-- 标签体的类型 -->
  			<body-content>empty</body-content>
  			
  			<!--  描述当前标签的属性-->
  			<attribute>
  			<!-- 属性名 -->
  						<name>value</name>
  						<!-- 该属性是否为必须 -->
  						<required>false</required>
  						<!-- runtime expression value
  					当前属性是否可以接受运行时表达式的动态值
  						 -->
  						<rtexprvalue>false</rtexprvalue>
  			</attribute>
  			
  				<attribute>
  			<!-- 属性名 -->
  						<name>count</name>
  						<!-- 该属性是否为必须 -->
  						<required>false</required>
  						<!-- runtime expression value
  					当前属性是否可以接受运行时表达式的动态值
  						 -->
  						<rtexprvalue>false</rtexprvalue>
  			</attribute>
  
  
  </tag>
  
  </taglib>

其中,name和count是自定义标签的属性。


3.在JSP页面导入并使用该标签:

	<myTag:hello/>
hello和tld文件中的标签名要一致。一个tld文件中可以有多个标签和标签名。所以在导入使用的时候也要注意点。

通过以上步骤,就完成了一个简单自定义标签的开发。

那么自定义标签中的属性又是干嘛的呢?也许在咱们的tld文件中需要传入几个参数,这时就需要属性了。要想使用属性,首先需要在Java类中声明这些属性以及相应的set()方法.

private String value;
	private String count;
	public void setValue(String valueString) {
		this.value = valueString;
	}
	
	public void setCount(String count) {
		this.count = count;
	}
同时,也需要在tld文件中对这些属性进行描述。最后,在咱们导入使用的时候,写上这些参数名和值即可
<mytag:	value="myTag" count="10"/>

doTag()方法:
public void doTag() throws JspException, IOException {
		System.out.println("doTag");
	HttpServletRequest request =(HttpServletRequest) pageContext.getRequest();
	System.out.println("value:"+value+"count:"+count);
	pageContext.getOut().println("Hello"+request.getParameter("name"));
	
	}



javaweb标签大全 资源名称:java web 标签大全资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。 立即下载

相关推荐

K210开发板学习笔记(三)——STM32+K210+SD卡实现人脸识别(完整K210代码)

更新日记:2022年4月26日 更新了串口通信部分的内容,本文写的略为粗糙,恐有不当之处,希望大家不吝赐教。 人脸识别 一、MaixPy IDE开发 参考博主晨少hc的博文(https://blog.youkuaiyun.com/HuangChen666/article/details/113995079)来实现人脸识别功能,我用的硬件是亚博智能的K210开发板,在配置工程中有几步和这个博主的不一样,需要注意。 所需要的文件有:模型文件),脚本文件,ide需要的bin文件...

Embedded learner的博客 4万+

JavaWeb 标准标签

web.xml的欢迎界面 新建一个项目 点两下Next 就会出现如下选项 将Generate web.xml deployment descriptor选项勾上 完成之后就会在WEB-INF目录底下就会出现一个web.xml文件 点开之后在页面左下方选择Source 下方界面是修改后的(注意:改了web.xml的代码都必须重新发布重启服务) 常用的jsp标签(自带) <jsp:include page="页面"> 包含 <jsp:param name="n...

weixin_62270300的博客 958

Spring Boot日志可视化实战:5分钟搞定Promtail采集与Grafana查询(避坑指南)

本文详细介绍了如何通过Promtail和Grafana实现Spring Boot日志的可视化查询,提供从日志采集到高效查询的全流程实战指南,重点解决部署中的常见问题。内容包括Logback配置、Promtail日志采集、Grafana的LogQL查询技巧及生产环境优化建议,帮助开发者快速定位和解决日志问题。

weixin_42526015的博客 107

【前端】HTML 标签 总结

HTML 不是一种编程语言,而是一种标记语言。 Html主要用来描述网页中所需要的组件,例如:文本框、表格、图片、视频等等,也对网页进行排版。 HTML的源文件,称为“网页”,通常以.html或者.htm为结尾。 可以使用任意文本编辑器编辑,需要使用浏览器执行。

m0_73381672的博客 1945

用户消费行为分析(MapReduce实现,Hive分析)

一、题目要求 数据来自CDNow网站的一份用户购买CD明细,本数据集共有 6 万条 左右数据,数据为 CDNow 网站 1997年1月至1998年6月的用户行为 数据

紫烟的博客 3013

FPGA图像处理入门 ZYNQ7020 图像中值膨胀腐蚀滤波

图像处理的三种滤波 中值滤波应用较为广泛 综合膨胀和腐蚀可以实现边缘检测。

Coast_的博客 715

前端——HTML中的常用标签详解

HTML中的常用标签

xh1605004242的博客 9861

webpack性能优化-optimization.splitChunks.chunks中的“all“、“async“和“initial“

最初,chunks(以及内部导入的模块)是通过内部 webpack 图谱中的父子关系关联的。CommonsChunkPlugin 曾被用来避免他们之间的重复依赖,但是不可能再做进一步的优化。 ——摘自 webpack 从 webpack v4 开始,移除了 CommonsChunkPlugin,取而代之的是 optimization.splitChunks。 而关于 optimization.splitChunks 中的chunks,webpack 官方文档却没有很好的进行举例解释,只说明了 async.

程序员秋风的博客 3137

java中的标签

java中的标签类似于C语言中的goto语句,常与continue和break进行应用。 continue和break不同之处在于continue是跳过后面的代码执行下一个循环,而break则是跳出循环。 java中标签不是很常用,如果用到的话需要注意以下几点: 使用在嵌套循环中,其他的地方可以用,但没有作用; 嵌套的名称可以不唯一,只要同一个嵌套的循环里面,内外的标签不一样即可。 continue的例子,break的类似: outer: for (int i = 1; i < 1

lwx356481的博客 1489

IEC 104电力规约详细解读(一) - 报文结构、报文分类、ASDU

比如,双方可以按频率发送,比如接收8帧I帧回答一帧S帧,也可以要求接收1帧I帧就应答1帧S帧,当然也可以不要求(S帧内容示例参考例1)。所以U帧格式的控制欲第一个字节就只有6种情况,分别是0x83(TESTER确认)、0x43(TESTER命令)、0x23(STOPDT确认)、0x13(STOPDT命令)、0x0B(START确认)、0x07(START命令)ASDU(应用服务数据单元),协议原文格式最好去101协议去看看,会比较详细。遥信、遥测、遥控、遥调、总召、对时等都需要使用I格式传送。

张二狗的博客 1万+

【基于 CasADi 的欠驱动无人船实时非线性模型预测控制(NMPC)实现 Visual Studio 2022 C++】

本文介绍了基于CasADi和IPOPT在Visual Studio 2022 C++环境下实现的欠驱动无人船实时非线性模型预测控制(NMPC)方案。文章详细阐述了NMPC基本原理、欠驱动无人船动力学模型(包含状态变量和控制变量定义),并给出了C++实现的核心代码框架。该方案通过显式引入系统动力学模型和约束条件,在每个采样周期滚动优化控制序列,有效解决了欠驱动无人船的轨迹跟踪与避碰问题。文中还提供了VS2022配置CasADi环境的详细步骤,包括预编译包下载、工程属性设置等关键环节,为工程实现提供了完整的技术

vor234的博客 653

JavaWeb——HTML常用标签

在HTML中常用的标签介绍

sakurapaid的博客 985

OpenClaw第2章:快速安装

本章将手把手教你安装 OpenClaw。

Maynor的博客 3236

javaweb学习总结(二十五)——jsp简单标签开发(一)

javaweb学习总结(二十五)——jsp简单标签开发(一) 一、简单标签(SimpleTag)   由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推广, SUN公司为降低标签技术的学习难度,在JSP 2.0中定义了一个更为简单、便于编写和调用的SimpleTag接口来实现标签的功能。    实现SimpleTag接口的标签通常称为简单标签。简单标签共定义了5个方法: setJspContext方法 setParent和getParent方法 setJspBody

a754315344的博客 347

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

JavaWeb:简单的标签

学习小结: 自定义标签: 1)、创建一个标签处理器类:实现SimpleTag 接口。 2)、在WEB-INF 文件夹下新建一个 .tld (标签描述文件)为扩展名的xml 文件,并拷入固定的部分:并对description、display-name、tlib-version、short-name、uri 做出修改。 <taglib xmlns="http://ja...

dgk96672的博客 152

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JavaWeb同步学习笔记之五十八、JavaWeb_简单标签的HelloWorld

JavaWeb_简单标签的HelloWorld简单标签的HelloWorld 简单标签的HelloWorld 1.为什么使用自定义标签  1)自定义标签可以降低 JSP 开发的复杂度和维护量,从 html 角度来说,可以使 html 不用去过多的关注那些比较复杂的商业逻辑(业务逻辑)。  2)利用自定义标签,可以软件开发人员和页面设计人员合理分工:页面设计人员可以把精力集中在使用标签(HTML,...

q124xs的博客 174

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JavaWeb(十三)简单标签

1、使用简单标签(1)建一个index.jsp模拟Servlet中的操作(2)testtag.jsp(3)启动tomcat,访问index.jsp(4)加入jstl的核心jar包和标准包到lib中(5)加入标签库(6)效果跟前面的一样2、自定义标签2.1、含义用户定义的一种自定义的jsp标记 。当一个含有自定义标签的jsp页面被jsp引擎编译成servlet时,tag标签被转化成了对一个称为 标签...

循序渐进学Java 1380

JavaWeb_简单标签(自定义标签)HelloWorld

传统标签和简单标签 可发自定义标签,其核心就是编写处理器类,一个标签对应一个标签处理器类,而一个标签库则是很多标签处理器的集合。所有标签处理器类都要实现JspTag接口,该接口没有定义任何方法,主要作为Tag和SimpleTag接口的父接口。 在JSP2.0以前,所有标签处理器类都必须实现Tag接口,这样的标签称为传统标签。 JSP2.0规范又定义了一种新的类型的标签,称为简...

weixin_30496431的博客 101

JavaWeb学习笔记8_初识简单标签

2. 自定义标签 1). HelloWorld ①. 创建一个标签处理器类: 实现 SimpleTag 接口.  ②. 在 WEB-INF 文件夹下新建一个 .tld(标签库描述文件) 为扩展名的 xml 文件. 并拷入固定的部分: 并对  description, display-name, tlib-version, short-name, uri 做出修改 &lt;taglib xml...

qq_35837370的博客 183

javaweb学习总结—jsp简单标签标签库开发

一、JspFragment类介绍   javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定义的,它的实例对象代表JSP页面中的一段符合JSP语法规范的JSP片段,这段JSP片段中不能包含JSP脚本元素。   WEB容器在处理简单标签的标签体时,会把标签体内容用一个JspFragment对象表示,并调用标签处理器对象的setJspBody方法把JspFr

Java知音 1539

javaWeb之EL标签简单总结

&lt;%--1.el可以进行自动的类型转化 --%&gt; score:${param.score +11}&lt;br/&gt; score:&lt;%=request.getParameter("score")+11 %&gt;&lt;br/&gt; /* url地址栏http://localhost:8080/ELx/el2.jsp?score=23 输出结果 score:34 s...

qq_35654259的博客 343

JavaWeb-自定义标签、传统标签和简单标签

一、自定义标签的作用 消除JSP中的java脚本,自定义标签也属于JSP中的一部分技术javax.servlet.jsp.tagext Tag接口,自定义标签处理类需要实现的接口Tag ;Tag接口的常量: EVAL_BODY_INCLUDE :为doStartTag服务,指示还要处理标签的主体内容。 SKIP_BODY:为doStartTag服务,指示不处理开始标签后的主题

Continue. 1137

javaweb之自定义标签——简单标签库

用简单标签控制是否执行标签体 package cn.itcast.web.simpletag; import java.io.IOException; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.JspFragment; import javax.servlet.jsp.t

我需要懂得努力 744

java自定义标签简单,JavaWeb_简单标签(自定义标签)HelloWorld

传统标签和简单标签可发自定义标签,其核心就是编写处理器类,一个标签对应一个标签处理器类,而一个标签库则是很多标签处理器的集合。所有标签处理器类都要实现JspTag接口,该接口没有定义任何方法,主要作为Tag和SimpleTag接口的父接口。在JSP2.0以前,所有标签处理器类都必须实现Tag接口,这样的标签称为传统标签。JSP2.0规范又定义了一种新的类型的标签,称为简单标签,其对应的处理器类要实...

weixin_42365038的博客 103
上一篇: JavaWEB__HttpSession简单总结及小应用
下一篇: php+Mysql 的CRUD操作
foolishAndStupid
博客等级 码龄12年 53粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值