当前位置: 首页 > news >正文

javaWeb 在jsp中 使用自定义标签输出访问者IP

1.java类,使用简单标签,jsp2.0规范, 继承 SimpleTagSupport

public class ViewIpSimpleTag extends SimpleTagSupport {
    @Override
    public void doTag() throws JspException, IOException {
        PageContext pageContext = (PageContext) this.getJspContext();
        String ip = ((HttpServletRequest) pageContext.getRequest()).getRemoteAddr();

        pageContext.getOut().write(ip);
    }
}

 

1.java类,使用传统标签 jsp1.0, 继承 TagSupport(弃用)

/**
 * jsp 自定义标签的步骤:
 *     1.写一个类实现Tag接口(继承TagSupport类)
 *     2.在WEB-INF文件夹中新建一个tld文件
 *     3.在jsp  页面中导入taglib标签库,然后调用 
 *
 */
public class ViewIp extends TagSupport {
    @Override
    public int doStartTag() throws JspException {
        try {
            HttpServletRequest request = (HttpServletRequest) this.pageContext
                    .getRequest();
            JspWriter out = this.pageContext.getOut();
            String ip = request.getRemoteAddr();
            out.print(ip);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return super.doStartTag();
    }

}

2.tld文件(/webProjectName/WEB-INF/web.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">
    <tlib-version>1.0</tlib-version>
    <short-name>web</short-name>
    <uri>www.bvb.de</uri>

    <tag>
        <name>viewIp</name>
        <tag-class>de.bvb.web.tag.ViewIpSimpleTag</tag-class>
        <body-content>empty</body-content>
    </tag>

</taglib>

 

3.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!-- 3.1导入标签库 prefix和文件名一致,uri和.tld文件夹中的uri一致,uri也可以写为 uri="/WEB-INF/web.tld" -->
<%@ taglib prefix="web" uri="www.bvb.de"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>

        你的ip是:
        <!--3.2 使用自定义标签 -->
        <web:viewIp />

        不使用自定义标签
        <%
        String ip = request.getRemoteAddr();
        out.print(ip);
        %>

    </head>
    <body></body>

 

转载于:https://www.cnblogs.com/Westfalen/p/5972416.html

相关文章:

  • join 拼接 方法
  • js 获取数组对象中的最后一项展示
  • 使用Git的Push出现rejected - non-fast-forward错误
  • CSS 相邻元素选择器
  • 设计模式——装饰者模式:婚纱照收费的简单实现
  • asp.net C#操作存储过程读取存储过程输出参数值
  • sync_binlog innodb_flush_log_at_trx_commit 浅析
  • 昂靠的由来[本博作者爆料]
  • js 中 空值赋值运算符 的用法
  • node学习系列之简单文件上传
  • 前端 关于汇率的计算
  • mongoDB 文档查询
  • 安装了python报错 或者执行 npm install 时报node-sass的各种相关错误 解决办法
  • 今天打开一个网站 FSO对象实例创建失败
  • 【LeetCode】5. Longest Palindromic Substring 最大回文子串
  • [译]前端离线指南(上)
  • 【347天】每日项目总结系列085(2018.01.18)
  • ES10 特性的完整指南
  • Java反射-动态类加载和重新加载
  • js中的正则表达式入门
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • Redux 中间件分析
  • Spring Cloud中负载均衡器概览
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 仿天猫超市收藏抛物线动画工具库
  • 回顾2016
  • 经典排序算法及其 Java 实现
  • 前言-如何学习区块链
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 一个项目push到多个远程Git仓库
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • ​插件化DPI在商用WIFI中的价值
  • #单片机(TB6600驱动42步进电机)
  • (1)(1.11) SiK Radio v2(一)
  • (MATLAB)第五章-矩阵运算
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (力扣)循环队列的实现与详解(C语言)
  • (转)visual stdio 书签功能介绍
  • (转)大型网站的系统架构
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .gitignore文件—git忽略文件
  • .Net 路由处理厉害了
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • // an array of int
  • @Autowired和@Resource的区别
  • @Bean有哪些属性
  • @PreAuthorize注解
  • @Query中countQuery的介绍
  • []我的函数库
  • [100天算法】-二叉树剪枝(day 48)
  • [AIGC] Spring Interceptor 拦截器详解