• Servlet------>jsp自定义标签1(简单入门)


    自定义标签能做什么:

    1.移除java代码

    2.控制jsp页面某一部分是否执行

    3.控制整个jsp是否执行

    3.jsp内容重复输出

    4.修改jsp内容输出

    效果:

    首先先写好实现这个标签的java类,这个类要继承tagsupput方法

    来看下api:所以我们重写doStartTag就行

    下面是我写好的java类:

     TagDemo1.java

    public class TagDemo1 extends TagSupport {
    
        @Override
        public int doStartTag() throws JspException {
            //通过pagecontext对象获取HttpServletRequest对象
            HttpServletRequest request=(HttpServletRequest) this.pageContext.getRequest();
            //获取JspWriter对象
            JspWriter out=this.pageContext.getOut();
            //获取当前ip,因为我是mac所以ip有点怪
            String ip=request.getRemoteAddr();
            try {
                out.print(ip);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return super.doStartTag();
        }
    }
    

    TagDemo2.java 

    public class TagDemo2 extends TagSupport {
    
    	@Override
    	public int doStartTag() throws JspException {
    		
    		HttpServletRequest request=(HttpServletRequest) this.pageContext.getRequest();
    		JspWriter out=this.pageContext.getOut();
    		Date date=new Date();
    		String time=date.toLocaleString();
    		try {
    			out.print(time);
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return super.doStartTag();
    	}
    }
    

    写好java类之后,我们来把他绑定到一个uri上:在tag.tld中

    这个的格式tomcat中有例子,位置如下:

    tag.tld:

     tag.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>A tag library exercising SimpleTag handlers.</description>
        <tlib-version>1.0</tlib-version>
        <short-name>SHOW</short-name>
        <uri>snowing.com</uri>
        <tag>
            <name>SHOW</name>
            <tag-class>tag.TagDemo1</tag-class>
            <body-content>empty</body-content>
        </tag>
            <tag>
            <name>SH</name>
            <tag-class>tag.TagDemo2</tag-class>
            <body-content>empty</body-content>
        </tag>
     </taglib>
    

    绑定后:在jsp页面引用

    tag.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        <%@ taglib uri="/WEB-INF/tag.tld" prefix="snowing"%>
        <%@ page import="java.util.Date"%> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>使用标签控制内容石否输出</title>
    </head>
    <body>
    您的ip是:<snowing:SHOW/></br>
    您的现在的时间是:<snowing:SH/>
    </body>
    </html>
    

    编译后的源码:

     切记:!引入的/day06/WebContent/WEB-INF/lib/jsp-api.jar要和tomcat中的版本一致

  • 相关阅读:
    简析Java RMI 与 .NET Remoting
    实现一个压缩Remoting传输数据的Sink:CompressionSink (转载)
    智能部署与更新
    第二章:.NET Remoting基础知识
    创建以Microsoft .NET Remoting为基础的分布式应用架构
    vs2005如何防止代码被反编译
    使用.NET Remoting开发分布式应用——配置文件篇(转载)
    Remoting概述
    高级 .NET Remoting
    第一章:Remoting技术简介
  • 原文地址:https://www.cnblogs.com/SnowingYXY/p/6713694.html
Copyright © 2020-2023  润新知