`
mazhiyuan
  • 浏览: 64291 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HF servelt&jsp 定制标记开发 要点总结

阅读更多

1.标记文件使用一个页面来实现标记功能,而标记处理器使用一个java标记处理器类来实现标记功能。

2.标记处理器有两种类型:传统和简单(in jsp 2.0)。

3.建立简单标记处理器时,可以扩展SimpleTagSupport,同时这个类实现了SimpleTag接口。

4.要部署一个标记处理器,必须建立一个tld,使用jstl和其他定制标记库所用的<tag>元素来描述标记。

5.如果使用一个有体的简单标记,要保证这个标记的TLD<tag>没有将<body-content>声明为empty。然后调用getJspBody().invoke()来处理体.

6.SimpleTagSupport类包括SimpleTag接口中所有的方法的实现,另外还提供了3个便利的方法,其中标个包括getJspBody(),可以使用这个方法访问标记体的内容。

7.简单标记声明周期:简单标记绝不会由容器重用,所以每次调用标记时,都会实例化标记处理器,并调用其setJspContext()方法。如果标记本身是从另一个标记中调用的,则会调用setParent()方法。如果调用标记时有属性,对于每个属性会调用一个bean式的设置方法。如果调用标记时有体,则会调用setJspBody()方法。最后,调用doTag()方法,结束时,撤销标记处理器实例。

8.只有调用标记时确实有体,才会调用setJspBody()方法。如果调用标记时没有体,不论是空标记<my:tag/>,还是开始和结束标记<my:tag><my:tag/>之间没有任何内容,都不会调用setJspBody方法。记住,如果标记有体,TLD必须反映出这一点:<body-content>的值不能是“empty”。

9.简单标记的doTag()方法可以设置标记体使用的一个属性,为此先调用getJspContext().setAttribute(),在调用getJspBody().invoke()。

10.doTag方法声明了一个JspException和一个IOException,所以可以直接写至JspWriter,而无需将其包装在一个try/catch块中。

11.通过在循环体调用体getJspBody().invoke(),可以迭代处理简单标记的体。

12.如果标记有一属性,要在tld中使用<attribute>元素声明这个属性,并在标记处理器类中提供一个类似于bean的setter方法。调用时,会在doTag之前调用这个setter方法。

13.getJspBody()方法返回一个JspFragment,它有两个方法:invoke和getJspContext,getJspContext返回一个JspContext,标记处理器可以用这个JspContext访问PageContext API。

14.如果invoke传入null,会把计算的体写至响应输出,不过,如果你想直接访问体内容,可以传入另一个Writer。

15.如果你希望当前页面停止处理,可以跑出一个SkipPageException。如果调用标记的页面包含在另一个页面中,尽管被包含的页面在抛出异常之后就停止处理,但外层页面仍会继续。

 

16.传统标记方法的生命周期返回值:

  BodyTagSupport TagSupport
doSartTag()可能返回的值

SKIP_BODY

EVAL_BODY_INCLUDE

EVAL_BODY_BUFFERED

SKIP_BODY

EVAL_BODY_INCLUDE

实现类的默认返回值

EVAL_BODY_BUFFERED

SKIP_BODY

可以调用的次数 仅一次 仅一次
doAfterBody()可能返回的值

SKIP_BODY

EVAL_BODY_AGAIN

SKIP_BODY

EVAL_BODY_AGAIN

实现类的默认返回值

SKIP_BODY

SKIP_BODY

可以调用的次数 0到多次 0到多次
doEndTag()可能返回的值

SKIP_PAGE

EVAL_PAGE

SKIP_PAGE

EVAL_PAGE

实现类的默认返回值

EVAL_PAGE

EVAL_PAGE

可以调用的次数 仅一次 仅一次
diInitBody()和setBodycontent()在哪些情况下可以调用以及每个标记调用的次数 仅一次,而且仅当doSartTag()返回

EVAL_BODY_BUFFERED

从不调用

 

17.简单标记和传统标记的主要区别:

 

  简单标记 传统标记
Tag接口 SimpleTag(扩展JspTag)

tag(扩展JspTag)

IterationTag(扩展Tag)

BodyTag(扩展IterationTag)

支持实现类 SimpleTagSupport(实现SimpleTag)

TagSupport(实现IterationTag)

BodyTagSupport(扩展TagSupport实现BodyTag)

可能实现的关键生命周期方法 doTag()

doStartTag

doEndTag

doAfterBody

(对于BodyTag---还有doInitBody()和setBodyContent())

如何写到响应输出 getJspContext().getOut().println(不需要try/catch,因为SimpleTag方法声明了IOException) pageContext.getOut().println(包装在一个try/catch中,因为传统标记方法没有声明IOException)
如何从一个支持实现访问隐式变量和作用域属性 利用getJspContext()方法返回一个JspContext(这通常是一个PageContext) 利用pageContext隐式变量—而不像SimpleTag那样使用一个方法。
如何导致体得到处理 getJspBody().invode(null) 从doStartTag()返回

EVAL_BODY_INCLUDE,或者如果类实现了Bodytag,则返回

EVAL_BODY_BUFFERED

如果让当前页面停止计算 抛出一个SkipPageException 从doEndTag()返回SKIP_PAGE
分享到:
评论

相关推荐

    jsp&servelt詳解

    **Java Servlets与JSP详解** ...总结,Java Servlets和JSP结合使用,能够构建出高效、灵活的Web应用。通过理解并熟练掌握这两者,开发者能够更好地应对各种Web开发场景,实现高效的数据处理和动态页面展示。

    Mybatis-Servelt+JSP+Mybatis 分页实战(取PageInfo的属性完成).zip

    【标题】 "Mybatis-Servelt+JSP+Mybatis 分页实战(取PageInfo的属性完成)" 提供了一个实际的开发案例,演示了如何在Java Web应用中使用Mybatis框架进行分页处理。这个实战项目的核心是整合Servlet、JSP和Mybatis,...

    Servelt+Jsp分页

    Servlet和JSp分页,的一个Jar包,可以直接在EL表达式里面直接套用,内有直接使用说明

    servelt-jsp教程,希望对你有所帮助

    Servlet和JSP是Java Web开发中的核心技术,它们用于构建动态网页和Web应用程序。Servlet是Java编写的小型服务器端程序,负责处理HTTP请求并生成响应。而JSP(Java Server Pages)是一种视图技术,它允许开发者将HTML...

    一个用servelt+Jsp+javabean 实现的电商购物

    它使用了“Servlet+jsp+servlet实现”,这里的第二个“servlet”可能是指的过滤器(Filter)或者是在描述中出现了笔误,通常在Web开发中,我们用Servlet来处理HTTP请求,而JSP则是用于生成动态HTML页面。另外,...

    收入了164个完整的、来自实战的Java编程实例,每个例子都有详尽的注释,全新的第二版涵盖了Java v1.3,实现了20个不同的Java API,其中包括Servelt、JSP、XML、Swing和Java2D

    收入了164个完整的、来自实战的Java编程实例,每个例子都有详尽的注释,全新的第二版涵盖了Java v1.3,实现了20个不同的Java API,其中包括Servelt、JSP、XML、Swing和Java2D java 网络高级编程(PDF) 介绍了网络...

    Jsp+Servelt使用 smb访问网络共享文件

    最近tomcat做了负载均衡,碰到一个难题,就是上传文件的共享问题。 最后使用的解决方案是使用一个共享地址,该地址可以被多个服务器共同访问。每个服务器通过smb与共享文件进行通信。 实现上传文件到网络共享文件夹...

    网上书店系统的JSP+Servelt+DAO实现

    综上所述,"网上书店系统的JSP+Servlet+DAO实现"项目涉及了Web开发的多个核心技术,通过MVC模式组织代码,实现了用户友好的界面、高效的后台处理和灵活的数据访问。开发者可以通过学习和实践此类项目,提升在Java ...

    JSP+Servlet+Tomcat应用开发从零开始学_完整版 PDF电子书下载 带书签目录

    JSP+Servlet+Tomcat应用开发从零开始学_完整版 PDF电子书下载 带书签目录JSP+Servlet+Tomcat应用开发从零开始学_完整版 PDF电子书下载 带书签目录JSP+Servlet+Tomcat应用开发从零开始学_完整版 PDF电子书下载 带书签...

    JSP+servelt登录功能

    在IT行业中,Web开发是一项核心技能,而JSP(JavaServer Pages)和Servlet是Java Web开发中的重要技术。本项目是东北大学网络编程课程的一项作业,主要目标是使用JSP和Servlet来实现一个简单的登录功能。这个功能...

    jsp+servlet经典案例

    **JSP(JavaServer Pages)和Servlet是Java Web开发中的两个核心技术,它们在构建Web应用程序时扮演着重要的角色。在MVC(Model-View-Controller)设计模式下,JSP通常用于视图层,而Servlet则负责处理业务逻辑和...

    J2EE项目–Servelt+jsp构建在线音乐网站(实现短信验证码+分页).zip

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全栈开发),有任何使用问题欢迎随时与我联系,我会及时为您解惑,...

    J2EE项目–Servelt+jsp构建在线音乐网站(实现短信验证码+分页)Music_web.zip

    音乐商城是一个在线平台,用于销售音乐作品...移动应用开发:包括iOS开发(使用Swift或Objective-C)和Android开发(使用Java或Kotlin)等。 大数据技术:包括Hadoop、Spark、Hive等用于处理和分析大规模数据集的技术。

    花店 后台 模板 jsp servelt

    【花店后台模板 jsp servlet MVC】是一种常见的Web应用程序开发框架,主要用于构建高效、可维护性强的后台管理系统。本文将详细解析这些技术及其在花店后台模板中的应用。 首先,让我们了解一下`jsp(JavaServer ...

    jsp+javaoop+servelt问卷调查系统

    【标题】"jsp+javaoop+servelt问卷调查系统"涉及了Web开发中的核心技术和实践。JSP(JavaServer Pages)是Java平台上的动态网页技术,用于创建交互式的Web应用程序。Java OOP(面向对象编程)是Java语言的基础,它...

    servelt 实现登录

    总结来说,这个"Servlet实现登录"的例子展示了JavaWeb开发中基础的用户身份验证流程,涵盖了JavaBean、Servlet和JSP的使用,以及基本的安全考虑。通过这个小项目,开发者可以学习到如何构建一个简单的用户登录系统,...

    servelt 的学习文件

    servelt jjjjiejilskjefjsafsdf

    jsp+Servelt+mysql增删修改.zip

    【标题】"jsp+Servelt+mysql增删修改.zip"是一个针对初学者的教程,它涵盖了使用JavaServer Pages (JSP)、Servlets以及MySQL数据库进行网页开发中的基本操作,特别是增、删、改、查(CRUD)功能的实现。这个教程可能...

    Servlet+Jsp+技术概述

    Servlet和JSP(JavaServer Pages)是Java Web开发中的核心技术,用于构建动态Web应用程序。它们在Web服务器上运行,提供与客户端(通常是浏览器)交互的能力,处理HTTP请求并生成响应。 **Servlet概述** Servlet是...

    Jsp+servelt+jdbc商城小案例.zip

    总之,这个"Jsp+Servlet+jdbc商城小案例"是一个全面的实战项目,可以帮助初学者巩固基础,提高对Web开发的理解,并掌握如何在实际项目中运用JSP、Servlet和JDBC技术。通过实际操作,学习者不仅可以提升编程技能,还...

Global site tag (gtag.js) - Google Analytics