jsp标签
来源:互联网 发布:无网络装网卡驱动 编辑:程序博客网 时间:2024/05/22 10:33
1,自定义JSP标签概述
2,自定义JSP标签的执行过程
3,自定义JSP标签的开发流程
4,使用标签输出客户机IP和分析
Tag接口的执行流程
1、public voidsetPageContext(PageContext pc),JSP引擎实例化标签处理器后,将调用setPageContext方法将JSP页面的pageContext对象传递给标签处理器,标签处理器以后可以通过这个pageContext对象与JSP页面进行通信。
2、public void setParent(Tag t),setPageContext方法执行完后,WEB容器接着调用的setParent方法将当前标签的父标签传递给当前标签处理器,如果当前标签没有父标签,则传递给setParent方法的参数值为null。
3、public int doStartTag(),调用了setPageContext方法和setParent方法之后,WEB容器执行到自定义标签的开始标记时,就会调用标签处理器的doStartTag方法。
4、public int doEndTag(),WEB容器执行完自定义标签的标签体后,就会接着去执行自定义标签的结束标记,此时,WEB容器会去调用标签处理器的doEndTag方法。
5、public void release(),通常WEB容器执行完自定义标签后,标签处理器会驻留在内存中,为其它请求服务,直至停止web应用时,web容器才会调用release方法。
5,自定义标签功能扩展
7,案例
1,index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.hbsi.com/ip-taglib" prefix="chj" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
当前的ip:<br/>
<chj:ip>
<%
out.println("haha");
%>
</chj:ip>
<br/>
输出ip:
<%
String ip=request.getRemoteAddr();
%>
<%=ip %>
</body>
</html>
2,ip-taglib.tld
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<!-- 版本号 -->
<tlib-version>1.0</tlib-version>
<!-- jsp版本 -->
<jsp-version>1.2</jsp-version>
<!-- 建议的perfix的名称 -->
<short-name>chj</short-name>
<!-- Uri地址 -->
<uri>http://www.hbsi.com/ip-taglib</uri>
<description>定义一个ip输出的标签</description>
<tag>
<!-- 标签名称 -->
<name>ip</name>
<!-- 标签的处理类 -->
<tag-class>www.csdn.net.blank.Tag.IpTag</tag-class>
<!-- 标签中的内容 -->
<body-content>scriptless</body-content>
<!-- 标签描述 -->
<description>描述ip</description>
</tag>
</taglib>
3,IpTag.java
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<!-- 版本号 -->
<tlib-version>1.0</tlib-version>
<!-- jsp版本 -->
<jsp-version>1.2</jsp-version>
<!-- 建议的perfix的名称 -->
<short-name>chj</short-name>
<!-- Uri地址 -->
<uri>http://www.hbsi.com/ip-taglib</uri>
<description>定义一个ip输出的标签</description>
<tag>
<!-- 标签名称 -->
<name>ip</name>
<!-- 标签的处理类 -->
<tag-class>www.csdn.net.blank.Tag.IpTag</tag-class>
<!-- 标签中的内容 -->
<body-content>scriptless</body-content>
<!-- 标签描述 -->
<description>描述ip</description>
</tag>
</taglib>
- JSP标签
- jsp标签
- jsp标签
- JSP标签
- JSP标签
- JSP标签
- JSP 标签
- jsp标签
- JSP标签
- Jsp标签
- jsp标签
- jsp标签
- jsp标签
- jsp标签
- jsp标签
- JSP标签
- jsp标签
- jsp标签
- top.location.href 不兼容 火狐和谷歌浏览器。。
- java基本语法+一点点提高
- 《组播扩展OSPF》
- HDU1128
- poj 2955 Brackets(区间DP)
- jsp标签
- 东方红是东方红地方搞活动
- 1-3认识html标签
- 虚拟IP原理 *********High Availability Cluster
- Swift教程_swift常见问题(0006)_完美解决swift数组索引是变量时的内存溢出
- 安卓混淆dontshrink
- char * const p 和char const *p 和 const char *p
- HDU 2037 今年暑假不AC (贪心)
- [Android] SQLite数据库之增删改查基础操作