Tag 标签

写了个让用Tag标签来获取用户IP的程序。

自定义标签主要用于移除Jsp页面中的java代码。

使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤:

  • 编写一个实现Tag接口的Java类(标签处理器类)。
  • 编写标签库描述符(tld)文件,在tld文件中对标签处理器类进行描述。
  • 1、书写类继承Tag类
public class ViewIPTag implements Tag {

    private PageContext pageContext;

    @Override
    public int doEndTag() throws JspException {
        
        return 0;
    }

    @Override
    public int doStartTag() throws JspException {
        //开始创建 tag的时候
        //在这里面进行初始化  
        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 0;
    }

    @Override
    public Tag getParent() {
        return null;
    }

    @Override
    public void release() {
        //销毁 tag
    }

    @Override
    public void setPageContext(PageContext arg0) {
         //第一个执行的方法    在jsp中将将  pageContext传递过来
        this.pageContext=arg0;
    }

    @Override
    public void setParent(Tag arg0) {
        
    }

}

里面进行执行据java代码 其实也是jsp中的servlet进行调用这个类,进行实现的。

  • 2、写.tld文件进行注册Tag标签
<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>/jeno</uri> <!-- 进行引用在jsp文件中 -->
    
    
     <tag>
        <name>viewIP</name> <!-- 为标签处理器类配一个标签名 -->
        <tag-class>jeno.com.tld.ViewIPTag</tag-class>
        <body-content>empty</body-content>
    </tag>
    
</taglib>
  • 3、在jsp文件中进行引用
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@taglib uri="/jeno" prefix="jeno"%>  进行引用标签
<!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>Tlddemo</title>
</head>
<body>
   你的ip是:
    <jeno:viewIP/>  
</body>
</html>

发布tomcat 可以看到 ip地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转自陈明乾的博客,可能有一定更新。 转原文声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、...
    C86guli阅读 4,885评论 6 72
  • 一. Java基础部分.................................................
    wy_sure阅读 4,031评论 0 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,819评论 18 399
  • 这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别? 答...
    杂货铺老板阅读 1,504评论 0 10
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,869评论 11 349

友情链接更多精彩内容