1、JSP标签技术始于JSP1.1
2、作用:代码复用;JSP页面简洁
3、四个步骤:
A、创建实现标签功能的JAVA类(Bean或Servlet)
B、创建标签库的描述文件
C、web.xml中添加标签库说明
D、JSP页面中添加标签库说明,及使用标签
4、标签可以访问的数据范围类型:
application
session
request
page
注:主要是为了说明什么时候用JavaBean或TagLib]
二、TagLib常用知识点
1、JSP Tag API
标签处理类必须是
javax.servlet.jsp.TagSupport
javax.servlet.jsp.BodyTagSupport
的子类 ,其中后者是前者的子类。
2、TagSupport的主要方法[8种]及重要属性[2个]
1) 主要方法:
与Servlet容器处理TAG开关相关的方法:
A、doStartTag()---Servlet容器遇到自定义标签的起始标志时调用该方法
B、doEndTag()---Servlet容器遇到自定义标签的结束结志时调用该方法
与标签处理类中值相关的方法:
C、setValue(String k,Object o) --- 在标签处理类中设置key / value
D、getValue(String k) --- 在标签处理类中根据参数key返回相应的value
E、removeValue(String k) --- 删除标签处理类中的相应的key / value
与Servlet容器相关,设置页面上下文相关的方法:
F、setPageContext(PageContext pc) --- 设置PageContext对象,该方法由Servlet容器在调用doStartTag或doEndTag方法前调用
与标签嵌套相关的方法:
G、setParent(Tag t) --- 设置嵌套了当前标签的上层标签的处理类,该方法由Servlet容器在调用doStartTag或doEndTag方法前调用
H、getParent() --- 返回嵌套了当前标签的上层标签的处理类
2) 重要属性:
A、parent --- 代表了嵌套了当前标签的上层标签的处理类
B、pageContext --- 代表了Web应用中的javax.servlet.jsp.PageContext对象
两点说明:
A 、Servlet容器在调用doStartTag()或doEndTag()方法前,
会先调用setPageContext()和setParent()方法,调置pageContext和parent.
B、在doStartTag()或doEndTag()方法中可以通过getParent()方法获取上层标签的处理类;
在TagSupport类中定义了protected类型的pageContext成员变量,因此在标签处理类中可以直接访问pageContext变量。
3、pageContext类的几点说明:
A、pageContext类提供了保存及访问WEB应用共享数据的方法:
--- public void setAttribute(String name,Object value, int scope)
--- public Object getAttribute(String name, int scope)
B、scope---用来指定数据的作用范围。可选值如下:
PageContext.PAGE_SCOPE
PageContext.REQUEST_SCOPE
PageContext. SESSION_SCOPE
PageContext.APPLICATION_SCOPE
如:
setAttribute( " userName " , " dxm " ,PageContext.SESSION_SCOPE);