Java web 开发 第3章 Tag文件与Tag标记

目录

一.Tag文件的结构

1.Tag文件

    Tag文件的结构

    Tag文件的保存

二.Tag标记

Tag标记与Tag文件

Tag标记的使用

 Tag标记的运行原理

三.Tag文件中的常用指令

1.tag指令

2.include指令

3.attribute指令

4.variable指令

5.taglib指令


一.Tag文件的结构

1.Tag文件

    Tag文件的结构

        Tag文件是 扩展名为 .tag 的文本文件 ,其结构和 JSP 文件类似。一个 Tag 文件中可以有普通的 HTML 标记符、某些特殊的指令 标记、 成员变量声明和方法的定义、 Java 程序片和 Java 表达式

    Tag文件的保存

建立目录结构Web服务目录\WEB-INF\tags

比如ch6\WEB-INF\tags

其中的WEB-INF(字母大写)和tags都是固定的目录名称,而tags下的子目录的名称可由用户给定

一个Tag文件必须保存到tags目录或其下的子目录中。这里oddNumberSum.tag保存到

ch6\WEB-INF\tags

目录中。

二.Tag标记

Tag标记通常用于标记HTML或XML文档中的特定元素或段落,以便于搜索引擎和其他应用程序可以更轻松地识别和组织文档内容。在HTML中,常见的标记包括标题标记(<h1>,<h2>等),段落标记(<p>),链接标记(<a>),图像标记(<img>)等。

Tag标记与Tag文件

<Tag文件名字 />
或
<Tag文件名字 > 其他内容(称为标体内容)</Tag文件名字>

 一个Tag文件对应着一个Tag标记,把全体Tag标记称之为一个自定义标记库或简称为标记库.

Tag标记的使用

JSP页在使用Tag标记来调用一个Tag文件之前,必须首先使用taglib指令标记引入该Web服务目录下的标记库,只有这样,JSP页面才可以使用Tag标记调用相应的Tag文件。

taglib指令的格式如下:

<%@ taglib tagdir="标记库的位置" prefix="前缀">

例如:

<%@ taglib tagdir="/WEB-INF/tags" prefix="computer"%>

 

■引入标记库后,JSP页面就可以使用带前缀的Tag标记调用相应的Tag文件,其中的前缀由<taglib>指令中的prefix属性指定。例如JSP如下使用Tag标记调用相应的Tag文件:

<computer:oddNumberSum />

 Tag标记的运行原理

Tomcat服务器处理JSP页面中的Tag标记的原理如下:

1)如果该Tag标记对应的Tag文件是首次被JSP页面调用,那么Tomcat服务器会Tag文件转译成一个java文件,并编译这个java文件生成字节码文件,然后执行这个字节码文件(这和执行JSP页面的原理类似)。

2)如果该Tag文件已经被转编译为字节码文件,Tomcat服务器将直接执行这个字节码文件。

3)如果对Tag文件进行了修改,那么Tomcat服务器会重新将Tag文件转译成一个java文件,并编译这个java文件生成字节码文件,然后执行这个字节码文件。

Tag标记的运行原理是通过在HTML文档中插入标记来实现的。标记是HTML文档中的一种特殊语法,用于描述文档的结构、样式和行为。标记通常由一对尖括号(< >)包裹着,其中包含标记的名称和属性。

当浏览器加载HTML文档时,它会解析文档中的标记,并根据标记的名称和属性来确定如何显示文档内容。例如,如果文档中包含一个<img>标记,浏览器就会加载该标记中指定的图片,并在页面中显示出来。

三.Tag文件中的常用指令

1.tag指令

Tag指令是一种在服务器端模板引擎中使用的指令,用于定义自定义标签,可以在页面中使用这些标签来生成特定的内容。Tag指令通常包含以下几个部分:

1. Name属性:用于指定自定义标签的名称,该名称在页面中使用该标签时需要引用。

2. Body属性:用于指定标签的主体内容,该内容可以是静态文本或动态表达式。

3. Attributes属性:用于指定标签的属性列表,每个属性包含名称和值两个部分。

4. Tag Handler属性:用于指定标签的处理程序,该处理程序通常是一个Java类或方法,用于生成标签的实际内容。

2.include指令

Include指令是一种在服务器端模板引擎中使用的指令,用于将其他文件中的内容包含到当前页面中。Include指令通常包含以下几个部分:

1. File属性:用于指定要包含的文件路径,可以是相对路径或绝对路径。

2. Charset属性:用于指定要包含的文件的字符集,通常是UTF-8。

3.attribute指令

Attribute指令是一种在服务器端模板引擎中使用的指令,用于定义标签的属性,可以在页面中使用这些属性来控制标签的行为和样式。Attribute指令通常包含以下几个部分:

1. Name属性:用于指定属性的名称,该名称在页面中使用该属性时需要引用。

2. Type属性:用于指定属性的类型,通常是字符串、整数、布尔值等。

3. Default属性:用于指定属性的默认值,如果在页面中未设置该属性,则使用该默认值。

4.variable指令

Variable指令是一种在服务器端模板引擎中使用的指令,用于定义变量并赋值,在页面中可以使用这些变量来控制标签的行为和样式。Variable指令通常包含以下几个部分:

1. Name属性:用于指定变量的名称,该名称在页面中使用该变量时需要引用。

2. Value属性:用于指定变量的值,可以是字符串、整数、布尔值等。

3. Scope属性:用于指定变量的作用域,通常是Request、Session或Application。

5.taglib指令

<%@ taglib uri="" prefix="c"%>

Taglib指令是一种在服务器端模板引擎中使用的指令,用于导入标签库,使得页面中可以使用标签库中定义的标签。Taglib指令通常包含以下几个部分:

1. Prefix属性:用于指定标签库的前缀,该前缀在页面中使用标签时需要引用。

2. Uri属性:用于指定标签库的URI,该URI指向标签库的描述文件,可以是相对路径或绝对路径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值