Head First Servlets&Jsp 读书摘记8——【自定义标签】
2010-06-30 02:59
471 查看
标签继续,这章实战性还是有那么些的,从读书时就想自己折腾个自定义标签,今天终于重新燃起热情,赶紧把第十章内容采摘下:
86、标记文件:很像include。建立和使用的最简方法:
1)取一个被包括的文件如(Header.jsp),把它重命名为带有一个.tag扩展名。
2)把标记文件(Header.tag)放在WEB-INF目录下一个名为tags的目录中。
3)在JSP中放一个taglib指令,并调用这个标记:
<%@ taglib perfix="myTags" tagdir="/WEB-INF/tags"%>
<html><body>...
<myTags:Header/>(去掉.tag扩展名)(P492);
87、对于标记文件,发生的不是请求参数,而是标记属性!
<myTags:Header subTitle="this is the title here">
标记文件中直接用
<%@ attribut name="subTitle"re ....(required="true" rtexprvalue="true")%>
${subTitle}(P494, 496);
88、对有体标记文件,在Header中可用<jsp:doBody />获取体内容(P497);
89、标记文件标记的体中不能使用脚步代码!(498);
90、容器在哪查找标记文件:
1)在WEB-INF/tags及其子目录中查找;
2)在WEB-INF/lib下JAR文件的META-INF/tags目录及其子目录中查找;
3)如果标记文件部署在一个JAR中,这个标记文件必须有一个TLD。
91、简单标记处理器的生命周期:
1)加载类(SimpleTagHandler.class)
2)实例化类(无参构造)
3)调用setJspContext(JspContext jspContext)方法(为处理提供对PageContext的一个引用。PageContext是JspContext的一个子类)。
4)如果标记嵌套的(由另一个标记调用),则调用setParent(JspTag jspTag)方法。(嵌套标记可以与“包围”它的其他外层标记通信)。
5)如果标记有属性,调用属性的设置方法。
6)如果标记的<body-content> 未声明为empty,而且标记有体,则调用setJspBody(JspFragment jspFragment)方法。
7)调用doTag()方法(一定要始终覆盖这个方法)。——终于要做标记该做的事情了。(P506);
92、JspFragment是表示JSP代码的一个对象,它存在的意义就是让别人调用。如果标记调用了一个简单标记处理器,这个标记的体就会被封装在JspFragment对象中,然后在setJspBody()方法中发送给标记处理器。(JspFragment中不能包含任何脚步元素!)(P512);
93、SkipPageException:停止处理页面……只停止直接调用标记的页面,如PageA 包含PageB,PageB报错了,PageA中includePageB下面的内容仍然执行。(P513, 516);
94、SimpleTag处理器不会重用!每个标记处理器实例只负责一次调用。(P517)
95、传统标记的生命周期:
1)~5)和91相同
6)调用doStartTag()方法。
7)如果没有声明标记体的体为空,而且调用标记时体确实不为空,另外doStartTag()方法返回EVAL_BODY_INCLUDE,则计算体。
8)如何计算了体内容,则调用doAfterBody()方法。(可多次调用)
9)调用doEndTag()方法。(只调用一次)。(P525);
96、传统标记生命周期取决于返回值(下图忽略红色框框)(P526);
97、容器可以重用传统标记处理器,可以在doStartTag()中重置这些实例变量;(P531);
98、基于BodyTag的传统标记处理器生命周期:如下图(含红色框框)
(P533);
99、标记调用父标记可用getParent()方法,用父标记从子标记获取信息折腾,麻烦……(P540~542);
还差两个图,明天找了工具再补充,(今天日本点球输了:(亚洲球队全军覆没)
86、标记文件:很像include。建立和使用的最简方法:
1)取一个被包括的文件如(Header.jsp),把它重命名为带有一个.tag扩展名。
2)把标记文件(Header.tag)放在WEB-INF目录下一个名为tags的目录中。
3)在JSP中放一个taglib指令,并调用这个标记:
<%@ taglib perfix="myTags" tagdir="/WEB-INF/tags"%>
<html><body>...
<myTags:Header/>(去掉.tag扩展名)(P492);
87、对于标记文件,发生的不是请求参数,而是标记属性!
<myTags:Header subTitle="this is the title here">
标记文件中直接用
<%@ attribut name="subTitle"re ....(required="true" rtexprvalue="true")%>
${subTitle}(P494, 496);
88、对有体标记文件,在Header中可用<jsp:doBody />获取体内容(P497);
89、标记文件标记的体中不能使用脚步代码!(498);
90、容器在哪查找标记文件:
1)在WEB-INF/tags及其子目录中查找;
2)在WEB-INF/lib下JAR文件的META-INF/tags目录及其子目录中查找;
3)如果标记文件部署在一个JAR中,这个标记文件必须有一个TLD。
91、简单标记处理器的生命周期:
1)加载类(SimpleTagHandler.class)
2)实例化类(无参构造)
3)调用setJspContext(JspContext jspContext)方法(为处理提供对PageContext的一个引用。PageContext是JspContext的一个子类)。
4)如果标记嵌套的(由另一个标记调用),则调用setParent(JspTag jspTag)方法。(嵌套标记可以与“包围”它的其他外层标记通信)。
5)如果标记有属性,调用属性的设置方法。
6)如果标记的<body-content> 未声明为empty,而且标记有体,则调用setJspBody(JspFragment jspFragment)方法。
7)调用doTag()方法(一定要始终覆盖这个方法)。——终于要做标记该做的事情了。(P506);
92、JspFragment是表示JSP代码的一个对象,它存在的意义就是让别人调用。如果标记调用了一个简单标记处理器,这个标记的体就会被封装在JspFragment对象中,然后在setJspBody()方法中发送给标记处理器。(JspFragment中不能包含任何脚步元素!)(P512);
93、SkipPageException:停止处理页面……只停止直接调用标记的页面,如PageA 包含PageB,PageB报错了,PageA中includePageB下面的内容仍然执行。(P513, 516);
94、SimpleTag处理器不会重用!每个标记处理器实例只负责一次调用。(P517)
95、传统标记的生命周期:
1)~5)和91相同
6)调用doStartTag()方法。
7)如果没有声明标记体的体为空,而且调用标记时体确实不为空,另外doStartTag()方法返回EVAL_BODY_INCLUDE,则计算体。
8)如何计算了体内容,则调用doAfterBody()方法。(可多次调用)
9)调用doEndTag()方法。(只调用一次)。(P525);
96、传统标记生命周期取决于返回值(下图忽略红色框框)(P526);
97、容器可以重用传统标记处理器,可以在doStartTag()中重置这些实例变量;(P531);
98、基于BodyTag的传统标记处理器生命周期:如下图(含红色框框)
(P533);
99、标记调用父标记可用getParent()方法,用父标记从子标记获取信息折腾,麻烦……(P540~542);
还差两个图,明天找了工具再补充,(今天日本点球输了:(亚洲球队全军覆没)
相关文章推荐
- Head First Servlets&Jsp 读书摘记5——【作为JSP】
- Head First Servlets&Jsp 读书摘记7——【JSTL】
- Head First Servlets&Jsp 读书摘记11——【过滤器的威力】
- Head First Servlets&Jsp 读书摘记1——【Web应用体系结构 & 迷你MVC】
- Head First Servlets&Jsp 读书摘记2——【作为Servlet】
- Head First Servlets&Jsp 读书摘记3——【作为Web应用】
- Head First Servlets&Jsp 读书摘记4——【会话状态】
- Head First Servlets&Jsp 读书摘记9——【部署】
- Head First Servlets&Jsp 读书摘记6——【没有脚步的页面】
- Head First Servlets&Jsp 读书摘记10——【Web应用安全】
- Head First Servlets&Jsp 读书摘记12——【模式和Struts】
- Head First Servlets&JSP知识体系
- 向新手推荐《Head First Servlets & JSP》J2EE入门
- headfirst servlet&jsp笔记
- 《Head First Servlets & JSP(中文版)》书摘
- Head First Servlet&JSP 读书笔记(一)
- Head-First Servelts&JSP reading note 3
- Why use Servlets & JSPs: an introduction(Head First Servlets and JSP)
- 2.1Head First Servlet & Jsp——请求转发和请求重定向
- Head First Jsp&Servlet笔记01 入门