jsp自定义标签库

作者: _借东西的小人 | 来源:发表于2017-05-07 21:15 被阅读34次

自定义标签

引入:向浏览器输出当前客户的ip地址(不能使用脚本),原先的jsp脚本已经无法满足我们的需求了,这时候需要使用jsp的自定义标签库了。

<%@taglib uri="http://gz.itcast.cn" prefix="itcast"%>
<%--使用标签库中的标签--%>
<itcast:showIp></itcast:showIp>//标签库中的标签```

- 新建一个类继承SimpleTagsupport类(标签处理器类)
- 覆盖doTag方法

public class ShowIpTag extends SimpleTagsupport{
private JspContext context;

@override

public void setJspContext(JspContext pc){
this.context = pc;
}

public void doTag() throws JspException,IOExcept{

//向浏览器输出当前客户的ip地址
PageContext pagecontext = (PageContext)context;
HttpServletResquest request = (HttpServletRequest)pageContext.getRequest();
String ip = request.getRemoteHost();
JspWriter out = pageContext.getOut();
out.write("使用自定义的标签输出客户的IP地址"+ip);
}
}```

  • 绑定jsp页面与java类的关系
    在WEB-INF里写一个.tld文件
<!--标签库的版本 -->
<tlib-version>1.1</tlib-version>
<!--标签库的前缀 -->
<short-name>itcast</short-name>
<!--tld文件的唯一标识 -->
<uri>http://gz.itcast.cn</uri>
<!--一个标签的声明 -->
<tag>
<!--标签名称 -->
<name>showIp</name>
<!--标签处理类的全名 -->
<tag-class>包名+类名</tag-class>
<!--输出标签内容格式 -->
<body-context>scriptless</body-context>
</tag>```
 ###jsp标签执行过程
- 访问jspzi资源(localhost:8080......)
- tomcat服务器把jsp文件翻译成java源文件,编译成class字节码,然后构造类对象 ,调用jspService()方法
- 检查jsp文件的taglib指令,是否存在名为http://gz.itcast.cn的tld文件
- 找到对应的<tag>标签,读取内容
###自定义标签处理器类的生命周期
**SimpleTag接口: **

void setJspContext(JspContext pc) --设置pageContext对象,传入pageContext(一
定调用)通过getJspCotext()方法得到pageContext对象
void setParent(JspTag parent) --设置父标签对象,传入父标签对象,如果没有父标签,
则不调用此方法。通过getParent()方法得到父标签对象。
void setXXX(值) --设置属性值。
void setJspBody(JspFragment jspBody) --设置标签体内容。
标签体内容封装到JspFragment对象中,然后传入
JspFragment对象。通过getJspBody()方法得到标签体内容。
如果没有标签体内容,则不会调用此方法
void doTag() --执行标签时调用的方法。(一定调用)```

自定义标签的作用

  1. 控制标签体内容是否输出
  2. 控制标签余下内容是否输出
  3. 控制重复输出标签体内容
  4. 改变标签体内容
  5. 带属性的标签

相关文章

  • EL表达式与JSP标签(学习笔记)

      本文内容主要介绍EL表达式、JSP标准标签库(JSTL)、JSP自定义标签库。其中拿EL表达式和JSP技术做对...

  • 29.JSTL

    为了完全在JSP中消除Java代码,学习JAVA的标签库: Java标签库: 1:自定义标签库. 2:标准标签库(...

  • 2022-03-26 Web基础知识(15)- JSP (七)

    JSP 标准标签库(JSTL)、JSP 自定义标签 查看内容请点击下面的链接: https://www.cnblo...

  • 自定义jsp标签

    笔记 JSP自定义标签 自定义标签是用户定义的JSP语言元素。当JSP页面包含一个自定义标签时将被转化为servl...

  • 14.自定义标签库开发(我的JavaEE笔记)

    一、 自定义标签简介 自定义标签主要用于移除jsp页面中的java代码。工程(tag) 使用自定义标签移除jsp页...

  • Jsp(四)

    JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能...

  • 五、Jsp 标签

    1 jsp标签1.1 jsp标签的作用jsp标签作用:替换jsp脚本。 核心标签库的重点标签:保存数据:

  • 使用Apache Tiles进行视图布局

    1、在web.xml中配置项目使用的自定义标签及引入所有标签库。 参考:taglib and jsp-prope...

  • Handler processing failed; neste

    错误: 解决:缺少JSTL(JSP StandardTagLibrary,JSP标准标签库),该库用来解析JSP标...

  • 003.JSTL 标签库

    JSP 标准标签库(JSP Standard Tag Library)是一个 JSP 标签集合,它封装了 JSP ...

网友评论

    本文标题:jsp自定义标签库

    本文链接:https://www.haomeiwen.com/subject/ylfptxtx.html