`
txf2004
  • 浏览: 7133283 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jsp简易标签

 
阅读更多

一:简单标签
由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推广, SUN公司为降低标签技术的学习难度,在JSP 2.0中定义了一个更为简单、便于编写和调用的SimpleTag接口来实现标签的功能。实现SimpleTag接口的标签通常称为简单标签。简单标签共定义了5个方法:
setJspContext方法
setParent和getParent方法
setJspBody方法
doTag方法
1 SimpleTag方法介绍
setJspContext方法
用于把JSP页面的pageContext对象传递给标签处理器对象
setParent方法
用于把父标签处理器对象传递给当前标签处理器对象
getParent方法
用于获得当前标签的父标签处理器对象
setJspBody方法
用于把代表标签体的JspFragment对象传递给标签处理器对象
doTag方法
用于完成所有的标签逻辑,包括输出、迭代、修改标签体内容等。在doTag方法中可以抛出javax.servlet.jsp.SkipPageException异常,用于通知WEB容器不再执行JSP页面中位于结束标记后面的内容,这等效于在传统标签的doEndTag方法中返回Tag.SKIP_PAGE常量的情况。

2 SimpleTag接口方法的执行顺序
当web容器开始执行标签时,会调用如下方法完成标签的初始化
WEB容器调用标签处理器对象的setJspContext方法,将代表JSP页面的pageContext对象传递给标签处理器对象。
WEB容器调用标签处理器对象的setParent方法,将父标签处理器对象传递给这个标签处理器对象。注意,只有在标签存在父标签的情况下,WEB容器才会调用这个方法。
如果调用标签时设置了属性,容器将调用每个属性对应的setter方法把属性值传递给标签处理器对象。如果标签的属性值是EL表达式或脚本表达式,则WEB容器首先计算表达式的值,然后把值传递给标签处理器对象。
如果简单标签有标签体,容器将调用setJspBody方法把代表标签体的JspFragment对象传递进来。
执行标签时:
容器调用标签处理器的doTag()方法,开发人员在方法体内通过操作JspFragment对象,就可以实现是否执行、迭代、修改标签体的目的。
当web容器开始执行标签时,会调用如下方法完成标签的初始化
WEB容器调用标签处理器对象的setJspContext方法,将代表JSP页面的pageContext对象传递给标签处理器对象。
WEB容器调用标签处理器对象的setParent方法,将父标签处理器对象传递给这个标签处理器对象。注意,只有在标签存在父标签的情况下,WEB容器才会调用这个方法。
如果调用标签时设置了属性,容器将调用每个属性对应的setter方法把属性值传递给标签处理器对象。如果标签的属性值是EL表达式或脚本表达式,则WEB容器首先计算表达式的值,然后把值传递给标签处理器对象。
如果简单标签有标签体,容器将调用setJspBody方法把代表标签体的JspFragment对象传递进来。
执行标签时:
容器调用标签处理器的doTag()方法,开发人员在方法体内通过操作JspFragment对象,就可以实现是否执行、迭代、修改标签体的目的。
3 JspFragment类
javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定义的,它的实例对象代表JSP页面中的一段符合JSP语法规范的JSP片段,这段JSP片段中不能包含JSP脚本元素。

WEB容器在处理简单标签的标签体时,会把标签体内容用一个JspFragment对象表示,并调用标签处理器对象的setJspBody方法把JspFragment对象传递给标签处理器对象。JspFragment类中只定义了两个方法,如下所示:

getJspContext方法
用于返回代表调用页面的JspContext对象.

public abstract void invoke(java.io.Writerout)
用于执行JspFragment对象所代表的JSP代码片段
参数out用于指定将JspFragment对象的执行结果写入到哪个输出流对象中,如果传递给参数out的值为null,则将执行结果写入到JspContext.getOut()方法返回的输出流对象中。(简而言之,可以理解为写给浏览器)
4 invoke方法详解
JspFragment.invoke方法是JspFragment最重要的方法,利用这个方法可以控制是否执行和输出标签体的内容、是否迭代执行标签体的内容或对标签体的执行结果进行修改后再输出。例如:
在标签处理器中如果没有调用JspFragment.invoke方法,其结果就相当于忽略标签体内容;
在标签处理器中重复调用JspFragment.invoke方法,则标签体内容将会被重复执行;
若想在标签处理器中修改标签体内容,只需在调用invoke方法时指定一个可取出结果数据的输出流对象(例如StringWriter),让标签体的执行结果输出到该输出流对象中,然后从该输出流对象中取出数据进行修改后再输出到目标设备,即可达到修改标签体的目的。
二 开发带属性的标签
自定义标签可以定义一个或多个属性,这样,在JSP页面中应用自定义标签时就可以设置这些属性的值,通过这些属性为标签处理器传递参数信息,从而提高标签的灵活性和复用性。
要想让一个自定义标签具有属性,通常需要完成两个任务:
在标签处理器中编写每个属性对应的setter方法
在TLD文件中描术标签的属性

为自定义标签定义属性时,每个属性都必须按照JavaBean的属性命名方式,在标签处理器中定义属性名对应的setter方法,用来接收JSP页面调用自定义标签时传递进来的属性值。 例如属性url,在标签处理器类中就要定义相应的setUrl(String url)方法。

在标签处理器中定义相应的set方法后,JSP引擎在解析执行开始标签前,也就是调用doStartTag方法前,会调用set属性方法,为标签设置属性。
2 在TLD中描述标签属性 attribute
<tag>元素的<attribute>子元素用于描述自定义
标签的一个属性,自定义标签所具有的每个属性
都要对应一个<attribute>元素 。

<attribute>
<description>description</description>
<name>aaaa</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>ObjectType</type>

</attribute>
使用标签控制页面逻辑案例:
开发防盗链标签
开发<c:if>标签
开发<c:if><c:else>标签
开发迭代标签
开发html转义标签
打包标签库

分享到:
评论

相关推荐

    用jsp写的简易留言板

    【jsp简易留言板】是一个基于JavaServer Pages(JSP)技术构建的在线互动平台,它允许用户在网站上发表留言并查看其他人的留言。这个系统具备基本的增删查改功能,以及分页显示留言,提高了用户体验。下面我们将深入...

    JSP简易网上购物系统

    **JSP简易网上购物系统详解** 本项目是一个基于JSP技术构建的简易网上购物系统,主要面向小型网店的开发需求,具有操作简单、易于理解的特点。在这个系统中,JSP(JavaServer Pages)和Servlet技术起到了核心作用,...

    jsp简易计算器

    ### jsp简易计算器知识点解析 #### 一、项目概述 本项目主要介绍了一个基于JSP技术实现的简易计算器。此计算器的功能相对基础,主要用于演示如何通过JSP进行基本的前端展示与后端处理逻辑的结合。 #### 二、关键...

    简易 jsp 网页购物车

    JSP页面通常包含静态内容和动态元素,其中动态元素由JSP指令、脚本元素和动作标签构成。在本项目中,JSP将用于渲染用户界面,展示商品列表、购物车内容以及处理用户提交的订单信息。 接下来,javabean是Java的一个...

    简易jsp新闻发布系统

    7. **动态内容生成**:通过JSP的EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)标签库,可以方便地在页面上动态显示新闻内容。 8. **权限控制**:尽管是初级项目,但可以考虑添加基础...

    JSP简易bbs社区论坛

    【JSP简易bbs社区论坛】是一个基于JavaServer Pages(JSP)技术构建的简单社区论坛平台。这个项目旨在提供一个基本的在线讨论环境,让用户能够注册、登录、发布话题、浏览和回复帖子,实现基本的社区交互功能。在...

    简单的jsp网上选课系统

    JSTL是一套标准的JSP标签库,用于简化JSP页面的编程,比如可以用来处理循环、条件判断、XML操作等。使用JSTL可以使代码更清晰,更易于维护。 7. **EL(Expression Language)** EL是JSP2.0引入的一种表达式语言,...

    jsp的简易留言板

    【JSP简易留言板详解】 JSP(JavaServer Pages)是一种基于Java技术的动态网页开发工具,它允许开发者在HTML代码中嵌入Java代码,从而实现动态网页的创建。本项目"jsp的简易留言板"旨在利用JSP技术构建一个简单易用...

    jsp+servlet简易购物车

    4.进行验证码收发操作,系统进入后展示商品列表,利用c标签将db入库的数据进行动态渲染,el表达式进行数据取值展示,添加购物车利用ajax请求 5.进行添加购物车、移除购物车的技术实现,根据所添加的购

    jsp做的简易BBS初学者看

    这个"jsp做的简易BBS"项目是针对初学者设计的一个实践案例,旨在帮助初学者理解和掌握JSP的基本原理和应用。 在BBS(Bulletin Board System,电子公告板系统)的开发中,JSP主要负责前端展示和后端数据处理。BBS...

    JSP简易小小小网站

    **JSP简易小小小网站** 本项目是一个基于JavaServer Pages(JSP)技术构建的简易网站,主要实现了用户注册和登录的功能,同时具备动态显示信息的能力。通过学习和实践这个项目,我们可以深入理解JSP的基本原理及其...

    JSP简易计算器

    【JSP简易计算器】是一个基于Javabean和JSP技术构建的简单计算应用程序,它展示了如何在Web开发中利用这两种技术进行交互处理。在这个项目中,JSP用于展示用户界面,而Javabean则作为业务逻辑层,处理用户输入的计算...

    JSP简易登陆注册源代码

    本项目“JSP简易登陆注册源代码”显然是一个适合初学者的实践案例,用于学习JSP的基本概念和实现用户登录、注册功能。 1. **JSP基本结构**:JSP文件通常包含静态内容(HTML、CSS、JavaScript)和动态内容(Java代码...

    jsp简易教程,初学者的好帮手

    **JSP(Java Server Pages)**是...总的来说,"jsp简易教程,初学者的好帮手"这个教程旨在帮助初学者快速掌握JSP的基本概念、语法和应用,通过阅读提供的资料,配合实际编程练习,可以有效提升对JSP的理解和使用能力。

    jsp 简易教程

    ### JSP简易教程知识点概述 #### 第1章 JSP简介 - **1.1 什么是JSP** - JavaServer Pages(简称JSP)是一种基于Java的服务器端脚本技术,用于生成动态网页内容。 - JSP允许开发人员将业务逻辑与表示层分离,使...

    jsp实现的简易计算器

    【JSP实现的简易计算器】 JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML代码中嵌入Java代码,从而实现服务器端的业务逻辑处理。本篇将详细介绍如何利用JSP来创建一个简易计算器,这涉及到JSP基本...

    jsp简易购物车

    【jsp简易购物车】是一个基于JavaServer Pages (JSP) 技术实现的简单购物车系统,适合初学者学习和理解Web开发中的购物车逻辑。在这个项目中,开发者可以了解到如何在网页上动态地添加、删除商品,以及计算总价等...

    WEB JSP简易制作

    【标题解析】:“WEB JSP简易制作”这个标题暗示了我们将会探讨如何使用JSP(JavaServer Pages)技术来创建一个简单的Web应用。JSP是一种动态网页开发技术,它允许开发者将HTML代码与Java代码结合在一起,使得网页...

    简易JSP信息管理系统

    【简易JSP信息管理系统】是一种基于Java服务器页面(JSP)技术构建的管理信息系统,它主要用于数据存储、处理和展示,适用于小型企业或个人进行日常信息管理。在本系统中,用户可以实现对数据的增删改查操作,提供了...

Global site tag (gtag.js) - Google Analytics