一、自定义标签的作用
自定义标签主要用于移除Jsp页面中的java代码。
二、自定义标签开发和使用
2.1、自定义标签开发步骤
1、编写一个实现Tag接口的Java类(标签处理器类)
1 package me.gacl.web.tag; 2 3 import java.io.IOException; 4 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.jsp.JspException; 7 import javax.servlet.jsp.JspWriter; 8 import javax.servlet.jsp.PageContext; 9 import javax.servlet.jsp.tagext.Tag; 10 11 public class ViewIPTag implements Tag { 12 13 //接收传递进来的PageContext对象 14 private PageContext pageContext; 15 16 @Override 17 public int doEndTag() throws JspException { 18 System.out.println("调用doEndTag()方法"); 19 return 0; 20 } 21 22 @Override 23 public int doStartTag() throws JspException { 24 System.out.println("调用doStartTag()方法"); 25 HttpServletRequest request =(HttpServletRequest) pageContext.getRequest(); 26 JspWriter out = pageContext.getOut(); 27 String ip = request.getRemoteAddr(); 28 try { 29 //这里输出的时候会抛出IOException异常 30 out.write(ip); 31 } catch (IOException e) { 32 //捕获IOException异常后继续抛出 33 throw new RuntimeException(e); 34 } 35 return 0; 36 } 37 38 @Override 39 public Tag getParent() { 40 return null; 41 } 42 43 @Override 44 public void release() { 45 System.out.println("调用release()方法"); 46 } 47 48 @Override 49 public void setPageContext(PageContext pageContext) { 50 System.out.println("setPageContext(PageContext pageContext)"); 51 this.pageContext = pageContext; 52 } 53 54 @Override 55 public void setParent(Tag arg0) { 56 57 } 58 59 }
2、在WEB-INF/目录下新建tld文件,在tld文件中对标签处理器类进行描述
标签:自定义,标签,pageContext,jsp,import,public,out From: https://www.cnblogs.com/bdsz/p/18045040