1、自定义标签开发步骤
1、编写一个实现Tag接口的Java类(标签处理器类)
1 packageme.gacl.web.tag;
2
3 importjava.io.IOException;
4
5 importjavax.servlet.http.HttpServletRequest;
6 importjavax.servlet.jsp.JspException;
7 importjavax.servlet.jsp.JspWriter;
8 importjavax.servlet.jsp.PageContext;
9 importjavax.servlet.jsp.tagext.Tag;
10
11 public class ViewIPTag implementsTag {
12
13 //接收传递进来的PageContext对象
14 privatePageContext pageContext;
15
16 @Override
17 public int doEndTag() throwsJspException {
18 System.out.println("调用doEndTag()方法");
19 return 0;
20 }
21
22 @Override
23 public int doStartTag() throwsJspException {
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 newRuntimeException(e);
34 }
35 return 0;
36 }
37
38 @Override
39 publicTag getParent() {
40 return null;
41 }
42
43 @Override
44 public voidrelease() {
45 System.out.println("调用release()方法");
46 }
47
48 @Override
49 public voidsetPageContext(PageContext pageContext) {
50 System.out.println("setPageContext(PageContext pageContext)");
51 this.pageContext =pageContext;
52 }
53
54 @Override
55 public voidsetParent(Tag arg0) {
56
57 }
58
59 }
2、在WEB-INF/目录下新建tld文件,在tld文件中对标签处理器类进行描述
gacl.tld文件的代码如下: