<?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>A tag library exercising SimpleTag handlers.</description>
<tlib-version>1.0</tlib-version>
<short-name>SimpleTagLibrary</short-name>
<uri>http://www.lcp.com</uri>
<tag>
<name>viewIP</name> <!-- 为标签处理器类配一个标签名 -->
<tag-class>cn.lcp.web.tag.ViewIPTag</tag-class>
<body-content>empty</body-content>
</tag>
<tag>
<name>tagDemo</name> <!-- 为标签处理器类配一个标签名 -->
<tag-class>cn.lcp.web.tag.TagDemo</tag-class>
<body-content>JSP</body-content> <!-- 标签体的内容 -->
</tag>
<tag>
<name>tagDemo2</name> <!-- 为标签处理器类配一个标签名 -->
<tag-class>cn.lcp.web.tag.TagDemo2</tag-class>
<body-content>empty</body-content> <!-- 标签体的内容 -->
</tag>
<tag>
<name>tagDemo3</name> <!-- 为标签处理器类配一个标签名 -->
<tag-class>cn.lcp.web.tag.TagDemo3</tag-class>
<body-content>JSP</body-content> <!-- 标签体的内容 -->
</tag>
<tag>
<name>tagDemo4</name> <!-- 为标签处理器类配一个标签名 -->
<tag-class>cn.lcp.web.tag.TagDemo4</tag-class>
<body-content>JSP</body-content> <!-- 标签体的内容 -->
</tag>
</taglib>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.lcp.com" prefix="lcp" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>使用标签控制页面内容(标签体)是否输出</title>
</head>
<body>
<lcp:tagDemo>啊啊啊啊</lcp:tagDemo>
</body>
</html>
package cn.lcp.web.tag;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;
public class TagDemo extends TagSupport {
@Override
public int doStartTag() throws JspException {
return Tag.SKIP_BODY; //有访问权限,不能看到
}
}
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.lcp.com" prefix="lcp" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP ‘3.jsp‘ starting page</title>
</head>
<lcp:tagDemo2/>
<body>
</body>
</html>
package cn.lcp.web.tag;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;
public class TagDemo2 extends TagSupport {
@Override
public int doEndTag() throws JspException {
//控制结束标签
return Tag.EVAL_PAGE; //EVAL_PAGE-余下的jsp就不会执行
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.lcp.com" prefix="lcp" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>控制输出次数</title>
</head>
<body>
请求
<lcp:tagDemo3>
CEERVCRVRxc车VVvbvb
This is my JSP page. <br>
</lcp:tagDemo3>
</body>
</html>
package cn.lcp.web.tag;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.IterationTag;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;
//控制标签体执行的次数
public class TagDemo3 extends TagSupport {
int x = 5;
@Override
public int doAfterBody() throws JspException {
x --;
if(x > 0){
return IterationTag.EVAL_BODY_AGAIN;
}else{
return IterationTag.SKIP_BODY;
}
}
@Override
public int doStartTag() throws JspException {
return Tag.EVAL_BODY_INCLUDE; //标签体执行。
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.lcp.com" prefix="lcp" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>修改标签自定义内容</title>
</head>
<body>
<lcp:tagDemo4>
This is my JSP page. <br>
</lcp:tagDemo4>
</body>
</html>
package cn.lcp.web.tag;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTag;
import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.tagext.Tag;
//修改标签体的内容
public class TagDemo4 extends BodyTagSupport {
@Override
public int doStartTag() throws JspException {
return BodyTag.EVAL_BODY_BUFFERED;
}
@Override
public int doEndTag() throws JspException {
//拿到标签体
String content = this.getBodyContent().getString();
String result = content.toUpperCase();
try {
this.pageContext.getOut().write(result);
} catch (IOException e) {
throw new RuntimeException(e);
}
return Tag.EVAL_PAGE;
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://www.lcp.com" prefix="lcp" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>输出客户机的IP</title>
</head>
<body>
您的IP是:<lcp:viewIP/>
</body>
</html>
package cn.lcp.web.tag;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
public class ViewIPTag extends TagSupport {
@Override
public int doStartTag() throws JspException {
// TODO Auto-generated method stub
//服务器调用这个方法
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
JspWriter out = pageContext.getOut();
String ip = request.getRemoteAddr();
try {
out.write(ip);
} catch (IOException e) {
throw new RuntimeException(e);
}
return super.doStartTag();
}
}
原文:http://www.cnblogs.com/lcpholdon/p/4380719.html