JSP自定义标签Taglib实现过程重点总结

Taglib指令介绍

Taglib指令,其实就是定义一个标签库以及自定义标签的前缀。

比如struts中支持的标签库,html标签库、bean标签库、logic标签库。

其中的具体的实现方式,我们不过多介绍,我们给大家从宏观的角度以及解决其中的疑难点,后面会大家介绍相应的学习资料。

除了struts的标签库,我们常见还有jstl标签库。

这样在界面jsp中引入其中的标签库或者标签库文件,然后才可以正常使用其中定义的标签。


代码如下:

<%@ taglib prefix ="bean" uri= "http://struts.apache.org/tags-bean" %>
<%@ taglib prefix ="logic" uri= "http://struts.apache.org/tags-logic" %>
<%@ taglib prefix ="html" uri= "http://struts.apache.org/tags-html" %>
<%@ taglib prefix ="c" uri="http://java.sun.com/jsp/jstl/core" %>

自定义标签库优点

在jsp1.1版本中就增加了自定义标签库。自定义标签库可以看作一种优秀的组件。在自定义标签库中,我们可以把复杂的业务逻辑功能都封装在标签库中了。而不必在jsp中写具体的代码。这样,jsp代码与java编码能力不必强制耦合在一起。

提到jsp版本的问题,我们首先应该确定我们jsp版本,因为版本不同,标签库文件引入的头文件不同,并且其中的标签也有差异。

如何查看我们使用的jsp版本或servlet版本

打开tomcat下lib文件下的jsp-api.jar下的/META-INF/MANIFEST.MF文件,查看jsp版本。

因为我已经导入eclispe中,图如下:

lib文件下的servlet-api.jar下的/META-INF/MANIFEST.MF文件,查看servlet版本

因为我已经导入eclispe中,图如下:

Jsp2新增的特性

上述图中jsp版本是2.2,servlet版本是3.0。目前servlet3.0对应的是jsp2.2规范,但是一般情况下,我们把jsp2.0与jsp2.2都统称为jsp2.

如果我们使用jsp2,则web.xml使用的是servlet2.4以上的版本。那我们看一下web.xml对应的头文件:

新增的特性是:


代码如下:

<web-app version= "4"
xmlns="http://javasuncom/xml/ns/j2ee"
xmlns:xsi="http://wwwworg/2001/XMLSchema-instance"
xsi:schemaLocation="http://javasuncom/xml/ns/j2ee
http://javasuncom/xml/ns/j2ee/web-app_2_xsd" >
</web-app>

1.直接配置jsp的属性

比如在web.xml中配置:


代码如下:

< jsp-config>
<jsp-property-group >
<!--  对那些文件进行应用 -->
<url-pattern >* jsp</ url-pattern>
<!-- 忽略el表达式 -->
<el-ignored >true </el-ignored >
</jsp-property-group >
</ jsp-config>

当然还有很多功能:

2.表达式语言

表达式语言,就是使用el表达式。

3.使用TagFile

使用TagFile可以代替标签处理类和库文件。

jsp1和jsp2的标签库文件中的头文件

jsp1的标签文件的头文件:


代码如下:

<?xml version="0" encoding= "UTF-8"?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc//DTD JSP Tag Library 1//EN"
"http://javasuncom/j2ee/dtds/web-jsptaglibrary_1_dtd">

根据后缀dtd,知道这是引入dtd文件,但是这具体表示什么意思呢?

若是引入dtd文件,则使用DOCTYPE 这种形式。但是 PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"是什么意思呢?

根据xml中,如何引入dtd文件?引入dtd文件有以下形式:

1.在xml文档内部引入dtd


代码如下:

<?xml version="0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

2.在xml文档引入外部dtd文件


代码如下:

<?xml version="0"?>
<!DOCTYPE note SYSTEM "notedtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

在文档类型声明时,用管间质SYSTEM或PUBLIC来指出外部DTD文件的位置

用system关键字,如下:<!DOCTYPE 根元素的名字 SYSTEM "外部DTD文件的URI">

用public如下:<!DOCTYPE 根元素的名字 PUBLIC "DTD的名字" "外部DTD文件的URI">

一般用system关键字来形容是私有的dtd文件。

而public关键字来形容的是公共的dtd文件。public形式,首先默认的根据dtd的名字来寻找dtd文件,找不到,则会根据dtd文件的uri寻找文件。

jsp2中标签文件的头文件如下:其中是使用的schema形式而不是dtd文件。


代码如下:

<?xml version="0" encoding="UTF-8" ?>
<taglib xmlns="http://javasuncom/xml/ns/j2ee"
xmlns:xsi="http://wwwworg/2001/XMLSchema-instance"
xsi:schemaLocation="http://javasuncom/xml/ns/j2ee http://javasuncom/xml/ns/j2ee/web-jsptaglibrary_2_xsd"
version="0"></taglib>

标签库文件位置

把tld文件放在WebContent目录下或其子目录下。这样的话,web.xml不用配置其位置即可。tomcat直接读取webcontent下的tld文件。

(0)

相关推荐

  • jsp自定义标签技术(实现原理与代码以及平台搭建步骤)

    由于jsp代码规范要求不能出现一句java代码.所有就有了jsp 的自定义标签技术. 所以jsp的自定义标签技术就是除去jsp的中的java代码.同时封装标签个人感觉也是一种安全性的体现,不让别人知道实现内部的代码. 那个如何实现自定义标签技术呢? 第一你得搭建一个环境,apche公司给了两个jar包分别是jstl.Jar和standar.Jar.将他们导入到javaweb工程下wed-inf的lib目录下面.(这两个jar包网上很多,也可上官网直接下载) 环境构建完毕.下面我用一段代码来制作一

  • JSP 自定义标签之一 简单实例

    在JSP中使用自定义标签可以达到这样的目的,事实上,我们所熟知的各类框架基本上都是通过自定义标签的形式来实现的. 通过使用自定义标签,我们可以将实现复杂的逻辑在页面用简单的标签来加以展示.下面我们来实现一个非常简单的自定义标签,期望通过这个简单的实例引领各位进入自定义标签的领域.我们准备定义的这个自定义标签所实现的功能是在JSP页面中显示出版权信息,并且在以后的博文中,我们还会对它进行升级改造. 首先,打开编辑器,创建以下Java代码: 复制代码 代码如下: package com.yanzhi

  • jsp简单自定义标签的forEach遍历及转义字符示例

    接着昨天的,如果<forEach>中的items类型是map或者Collection类型的,怎样使用增强for循环: 首先还是创建一个标签处理器类,定义两个属性,String var; Object items: 因为items要迭代各种集合,所以要使用Object; 然后重写setter方法: 声明一个成员变量,集合类型的, 和上面两个属性是不相同的,这个是用在类里的, 在items的setter方法中,判断items的类型 然后继承他的doTag方法: 复制代码 代码如下: public

  • JSP自定义标签-标签属性_动力节点Java学院整理

    对自定义标签添加一些属性,可以使我们的标签功能更加灵活和复用.例如前一篇博客使用简单标签来对标签体内容执行一定的次数,就无法在标签上规定要执行的次数,必须在标签处理器类中修改,很不方便,如果使用带属性的标签就能很好的解决这个问题. 要想使简单标签具有属性,通常需要满足以下两个步骤: ① 在标签处理器类中定义属性,同时为每个属性生成setter方法: ② 在TLD文件中对于的<tag>标签下添加属性的<attribute>标签,同时<attribute>标签下定义其从标签

  • 基于JSP 自定义标签使用实例介绍

    添加JSP自定义标签: 先添加一个tld文件到WEB-INF文件夹中<?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://

  • JSP自定义标签获取用户IP地址的方法

    1.编写一个实现tag接口的标签处理器类 复制代码 代码如下: package cn.itcast.web.tag; import java.io.IOException; import javax.servlet.http.HttpServletRequest;import javax.servlet.jsp.JspException;import javax.servlet.jsp.JspWriter;import javax.servlet.jsp.PageContext;import j

  • JSP自定义标签rtexprvalue属性用法实例分析

    本文实例讲述了JSP自定义标签rtexprvalue属性.分享给大家供大家参考.具体如下: 其实以前也有写过自定义标签, 但是没有注意到过<rtexprvalue>的用法, 最近这几天又用上自定义标签了, 突然发现<rtexprvalue>的用法是有讲究的. rtexprvalue的全称是 Run-time Expression Value, 它用于表示是否可以使用JSP表达式. 当在<attribute>标签里指定<rtexprvalue>true<

  • JSP自定义标签Taglib实现过程重点总结

    Taglib指令介绍 Taglib指令,其实就是定义一个标签库以及自定义标签的前缀. 比如struts中支持的标签库,html标签库.bean标签库.logic标签库. 其中的具体的实现方式,我们不过多介绍,我们给大家从宏观的角度以及解决其中的疑难点,后面会大家介绍相应的学习资料. 除了struts的标签库,我们常见还有jstl标签库. 这样在界面jsp中引入其中的标签库或者标签库文件,然后才可以正常使用其中定义的标签. 复制代码 代码如下: <%@ taglib prefix ="bea

  • jsp自定义标签用法实例详解

    本文实例讲述了jsp自定义标签用法.分享给大家供大家参考.具体如下: 在JSP中有一种机制,可以让你在JSP页面中插入与HTML类似的标记.本文介绍JSP定制标记的基本概念和构成,以及如何开发和应用JSP定制标记. 什么是标记 使用HTML语言我们可以这样去编辑我们的网页: <HTML> <HEAD> <TITLE> HELLO WORLD </TITLE> </HEAD> <BODY> HELLO WORLD </BODY&g

  • JSP自定义标签入门学习

    本文为大家分享了JSP自定义标签入门学习教程,希望大家喜欢. 1.JSP自定义标签: 自定义标签是用户定义的JSP语言元素.当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对被 称为tag handler的对象的操作,即当servlet执行时Web container调用那些操作.JSP标签扩展可以让你创建新的标签并且可以直接插入到一个JSP页面. JSP 2.0规范中引入Simple Tag Handlers来编写这些自定义标记.你可以继承SimpleTagSupport类

  • JSP自定义标签案例分析

    本文为大家介绍了JSP自定义标签的案例,供大家参考,具体内容如下 案例一:实现一个基本防盗链标签 1. 标签处理类 public class MyReferer extends BodyTagSupport { private String site; private String back; public String getSite() { return site; } public void setSite(String site) { this.site = site; } public

  • JSP 自定义标签实现数据字典的实例

    JSP 自定义标签实现数据字典的实例 1.关于JSP标签的好处就不再罗嗦 数据字典就是使用的下拉框,只要定义使用那个字典就会将这个字典可用的内容显示出来 显示字典时只要定义那个字典和属性值就可以显示出字典的显示值 2.首先在web.xml中定义自定义标签加载的引用,两个属性分别是引用的URI和加载路径 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xm

  • Jsp自定义标签和方法详解

    Jsp自定义标签和方法详解 首先是要有一个标签处理类,标签处理类可以直接实现Tag接口,也可以继承Java中已经实现了的TagSupport这个类,TagSupport也是继承自Tag接口的,它内部已经对Tag接口进行了实现,一般是继承TagSupport类,之后是重写父类的doStartTag和doEndTag方法, 对于开始标签来说返回值主要有EVAL_BODY_INCLUDE和SKIP_BODY,前者表示执行标签体,后者表示略过标签体: 对于结束标签的返回值主要有两种EVAL_PAGE和S

  • jsp自定义标签之ifelse与遍历自定义标签示例

    第一个示例: 简单的jsp自定标签获取内容: 首先创建一个jsp实例类然后继承SimpleTagSupport类 然后实现父类的doTag()方法 在这个方法里获取标签体里的内容this.getJspBody(); 返回的是JspFragment 类,根据这个类对象调用invoke(this.getJspContext().getOut()); 这个方法里面也可以写空,所表达的意思也是输出到浏览器: 复制代码 代码如下: public class SimpleDmeo1 extends Simp

  • JSP 自定义标签第1/3页

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

随机推荐