`
xitongyunwei
  • 浏览: 916063 次
文章分类
社区版块
存档分类
最新评论

javaweb jsp自定义标签

 
阅读更多
一、自定义标签的作用
1、消除JSP中的java脚本。自定义标签也属于JSP中的一部分技术。
2、javax.servlet.jsp.tagext.Tag接口:标签处理类需要实现的接口


常量:
int EVAL_BODY_INCLUDE:为doStartTag服务,指示还要处理标签的主体内容。
int EVAL_PAGE:为doEndTag服务,指示还要处理结束标签后的其他JSP内容。
int SKIP_BODY:为doStartTag服务,指示忽略标签的主体内容。
int SKIP_PAGE:为doEndTag服务,指示忽略结束标签后的其他JSP内容。
方法:方法都是由容器调用,包括标签处理类也是由容器实例化的。
int doEndTag():遇到结束标签时,容器调用。
int doStartTag():遇到开始标签时,容器调用。
Tag getParent():获取父标签
void release():释放标签占用的资源
void setPageContext(PageContext pc):容器调用。标签处理类实例化后,容器会把PageContext对象传给你。
void setParent(Tag t):设置父标签。容器调用。


二、自定义标签的开发步骤,快速入门,执行原理和过程
1、定义一个类实现javax.servlet.jsp.tagext.Tag接口或者继承TagSupport,该类称为标签处理类
package com.itheima.tag;


import java.io.IOException;


import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;


public class ShowRemoteIpTag extends TagSupport {


public int doStartTag() throws JspException {


String ip = pageContext.getRequest().getRemoteAddr();
try {
pageContext.getOut().write(ip);
} catch (IOException e) {
e.printStackTrace();
}
return super.doStartTag();
}


}
2、在WEB-INF目录下建立一个扩展名为tld的xml文件。用于对标签处理类进行描述。(参考Tomcat中的tld文件)
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>dsfds</description>
<tlib-version>1.0</tlib-version>
<short-name>itheima</short-name>
<uri>http://www.itheima.com/jsp/tag</uri>
<tag>
<description>show remote ip</description>
<name>showRemoteIp</name>
<tag-class>com.itheima.tag.ShowRemoteIpTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
3、在web。xml中对tld的实际存放位置和tld中的uri进行匹配。(可选步骤,前提是tld放到了WEB-INF目录或者类路径下)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<jsp-config>
<taglib>
<taglib-uri>http://www.itheima.com/jsp/tag</taglib-uri>
<taglib-location>/WEB-INF/itheima.tld</taglib-location>
</taglib>
</jsp-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
4、在JSP中使用
<%@ taglib uri="http://www.itheima.com/jsp/tag" prefix="itheima"%>


三、自定义标签可以完成的功能
1、IterationTag接口。扩展了Tag接口。增加了重复执行主体内容的方法
int doAfterBody():
Tag.SKIP_BODY:忽略主体内容
IterationTag.EVAL_BODY_AGAIN:执行自己again
2、BodyTag接口.扩展了Iteration接口。获取主体内容的方法。
int EVAL_BODY_BUFFERED:


void doInitBody() :容器来调用
void setBodyContent(BodyContent b):b封装了主体内容。容器来调用


四、传统标签详解
五、JSP中自定义标签核心类图
六、简单标签,执行原理和过程
1、javax.servlet.jsp.tagext.SimpleTag
方法:
void doTag():遇到标签容器调用。
JspTag getParent():获取父标签,如果有的话。
void setJspBody(JspFragment jspBody):容器调用,传入标签的主体内容。JspFragment代表主体内容
void setJspContext(JspContext pc):容器调用。标签处理类实例化后,容器会把PageContext对象传给你。
void setParent(JspTag t):设置父标签。容器调用。


七、tld文件主要标签详解
taglib:根元素
short-name:引用时的短名称
uri:绑定的名称空间
tag:用于描述一个标签
name:标签的名称
tag-class:标签对应的处理类。全名
body-content:指示标签的主体内容的类型。
可选值:
empty:没有主体内容。
JSP:有主体内容。服务于传统标签。JSP文件中能出现啥,主体内容就能出现啥。
scriptless:服务于简单标签。主体内容不能出现java脚本或表达式。
tagdependent:把主体内容原封不动的传递给标签处理类。
attribute:用于描述属性
name:属性名称
required:true|false|yes|no。指示该属性是否是必须的。
rtexprvalue:true|false|yes|no。指示属性的取值是否支持表达式(EL或者Java表达式)
分享到:
评论

相关推荐

    jsp自定义标签技术(实现原理与代码以及平台搭建步骤)

    所有就有了jsp 的自定义标签技术。 所以jsp的自定义标签技术就是除去jsp的中的java代码。同时封装标签个人感觉也是一种安全性的体现,不让别人知道实现内部的代码。 那个如何实现自定义标签技术呢? 第一你得搭建一...

    JavaWEB开发-简单标签 ppt

    自定义标签可以降低 jsp 开发的复杂度和维护量,从 html 角度来说,可以使 html 不用去过多的关注那些比较复杂的商业逻辑(业务逻辑)。 利用自定义标签,可以软件开发人员和页面设计人员合理分工:页面设计人员可以把...

    方立勋:JavaWeb视频前十一天教程配套ppt下载

    大家共同为为互联网贡献一份力量: 方立勋JavaWeb视频教程_java基础增强(第一天) 方立勋JavaWeb视频教程_xml(第二、三天) 方立勋JavaWeb视频教程_web开发...方立勋JavaWeb视频教程_自定义标签库开发(第十一天)

    JavaWEB(jsp+servlert)笔记

    包含servlet、jsp、el、jstl、jdbc、过滤器、自定义标签、uploadListener、会话等基本上所有和JavaWEB相关的知识点

    JavaWeb 开发指南 PPT课件

    9章 自定义JSP标签 10章 JSP标准标签库(JSTL) 11章 关系数据库与JDBC基础 12章 JSP与Java Mail Web应用 13章 XML在JSP中的应用 14章 使用Servlet过滤器和监听器 15章 JSP Web应用的安全性 16章 Tomcat容器的JSP 17章...

    JSTL标准标签库.pdf

    从JSP 1.1规范开始JSP就支持使用自定义标签,使用自定义标签大大降低了JSP页面的复杂度,同时增强了代码的重用性,因此自定义标签在WEB应用中被广泛使用。许多WEB应用厂商都开发出了自己的一套标签库提供给用户使用...

    javaWeb学习笔记基础知识

    Servlet,请求和响应机制,jsp动态网页技术,会话跟踪 javaBean,JSP常用标签和自定义标签,AJAX实例,以及监听器,过滤器和BaseServlet和分页

    JavaWeb标签应用开发

    JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是...

    JAVAWEB面试题

    精心准备的javaweb的面试题,包含http,JavaScript,json,jsp,servlet,el表达式,自定义标签库,经典案例等

    基于JavaWeb的停车场管理系统源码+报告+说明.zip

    通过实现停车场管理系统的功能,培养自己WEB应用设计与开发的能力,综合应用WEB开发中js技术、Servlet与JSP,以及JavaBean、自定义标签等技术,结合后台数据库管理,并且设计一套关于停车时间计算的收费标准,设计并...

    完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx

    完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第11章 AJAX实现(共11页).pptx 完整版Java web开发教程PPT...

    java购物车 JSP + servlet

    用JSP + Servlet开发的网上购物车。现在许多学校和培训机构把购物车作为教学JSP的第一资料,把这个学会了,JSP也就没什么难度了,尤其是自定义标签和分页功能,是开发WEB项目所必需的。

    JavaWeb(想学习框架得先学习JavaWeb)

    本课程jsp部分介绍:Servlet底层,jsp的底层原理,jsp与servlet的区别,jsp页面如何插入java代码,jsp中的3个指令、7个动作,9个内置对象的使用,EL表达式,JSTL标签,如何自定义标签,MVC模式,jsp+servlet实战案例

    《Java_Web应用开发实用教程》练习答案

    第2篇JSP高级技术分为7章,深入剖析了主流的Web开发框架,包括EL表达式语言、JSTL、自定义标签、Log4j、Hibernate、Spring框架;第3篇Java Web技术应用分为5章,介绍具体场景下的应用案例,包括注册登录模块的应用、...

    基于JavaWeb的停车场管理系统源码+报告+说明

    通过实现停车场管理系统的功能,培养自己WEB应用设计与开发的能力,综合应用WEB开发中js技术、Servlet与JSP,以及JavaBean、自定义标签等技术,结合后台数据库管理,并且设计一套关于停车时间计算的收费标准,设计并...

    基于JavaWeb的学籍管理项目.zip-10

    目前,在大多数B/S(Browser/Server)结构的Web应用中,...JSP可以通过直接调用方法或使用UseBean的自定义标签得到JavaBeans中的数据。这种设计模式很好地实现了数据层与表示层的分离,使开发工作更加容易和迅速[14]。

    基于JavaWeb的课程设计鲜花订购系统源码+数据库.zip

    通过实现鲜花订购系统的功能,培养自己WEB应用设计与开发的能力,综合应用WEB开发中js技术、Servlet与JSP,以及JavaBean、自定义标签等技术,结合后台数据库管理。与在线系统相比,传统鲜花销售模式由于店面,鲜花的...

    基于JavaWeb + Mysql + Layui实现的宿舍管理系统源码+数据库+演示截图+项目说明.zip

    - 后端方面:JavaSe核心语法、MVC(controlle层、service、dao层)模型开发、jsp相关语法(jstl标签库、el表达式)、maven构建项目和管理jar包 - 前端方面:JavaScript(jquery)核心语法、AJAX异步刷新、Layui前端 UI...

    javawen之jsp从入门到项目实战(jsp+servlet)

    本课程对JSP做了详细讲解,主要涉及的课程内容:jsp的底层原理,jsp与servlet的区别,jsp页面如何插入java代码,jsp中的3个指令、7个动作,9个内置对象的使用,EL表达式,JSTL标签,如何自定义标签,MVC模式,jsp+...

    基于SSM使用idea构建的旅游网站---毕业设计

    3)分页使用的是jsp自定义标签; 4)上传图片到项目也是封装好了工具类; 5)在线支付调用易宝的支付接口; 6)自定义拦截器对为登陆用户进行拦截; 7)复杂的业务在于一个景点对应多个门票,想要门票显示在对应...

Global site tag (gtag.js) - Google Analytics