java自定义标签 权限

<?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用来添加对taglib(标签库)的描述 -->

<description>zfx的自定义标签库</description>

<!--taglib(标签库)的版本号 -->

<tlib-version>1.0</tlib-version>

<short-name>GaclTagLibrary</short-name>

<!--

为自定义标签库设置一个uri,uri以/开头,/后面的内容随便写,如这里的/gacl ,

在Jsp页面中引用标签库时,需要通过uri找到标签库

在Jsp页面中就要这样引入标签库:<%@taglib uri="/gacl" prefix="gacl"%>

-->

<uri>/gacl</uri>

<!--一个taglib(标签库)中包含多个自定义标签,每一个自定义标签使用一个tag标记来描述  -->

<!-- 一个tag标记对应一个自定义标签 -->

<tag>

<description>这个标签的作用是用来输出客户端的IP地址</description>

<!--

为标签处理器类配一个标签名,在Jsp页面中使用标签时是通过标签名来找到要调用的标签处理器类的

通过viewIP就能找到对应的cn.springmvc.controller.ViewIPTag类

-->

<name>viewIP</name>

<!-- 标签对应的处理器类-->

<tag-class>cn.springmvc.controller.ViewIPTag</tag-class>

<body-content>jsp</body-content><!-- empty 或者 -->

<attribute>

<name>userName</name>

<required>true</required>

<rtexprvalue>true</rtexprvalue>

</attribute>

</tag>

</taglib>

-----------------------------------------------------------------------------------------------

package cn.springmvc.controller;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.JspWriter;

import javax.servlet.jsp.PageContext;

import javax.servlet.jsp.tagext.Tag;

public class ViewIPTag implements Tag  {

//接收传递进来的PageContext对象

private PageContext pageContext;

private String userName;

@Override

public int doEndTag() throws JspException {

System.out.println("调用doEndTag()方法");

return 0;

}

@Override

public int doStartTag() throws JspException {

if(userName.equals("John")){

System.out.println("1231");

return SKIP_BODY;  //不继续执行了。

}

System.out.println("调用doStartTag()方法");

System.out.println(userName);

HttpServletRequest request =(HttpServletRequest) pageContext.getRequest();

JspWriter out = pageContext.getOut();

String ip = request.getRemoteAddr();

try {

//这里输出的时候会抛出IOException异常

out.write(ip);

out.write("<h1>呵呵</h1>");

} catch (IOException e) {

//捕获IOException异常后继续抛出

throw new RuntimeException(e);

}

System.out.println(SKIP_BODY);

System.out.println(EVAL_PAGE);

return EVAL_PAGE; //继续执行的意思

}

@Override

public Tag getParent() {

return null;

}

@Override

public void release() {

System.out.println("调用release()方法");

}

@Override

public void setPageContext(PageContext pageContext) {

System.out.println("setPageContext(PageContext pageContext)");

this.pageContext = pageContext;

}

@Override

public void setParent(Tag arg0) {

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

}

--------------------------------------------------------------------------------------------

<%@ page language="java" pageEncoding="UTF-8"%>

<!-- 使用taglib指令引用gacl标签库,标签库的前缀(prefix)可以随便设置,如这里设置成 prefix="xdp" -->

<%@taglib uri="/gacl"  prefix="xdp"%>

<!DOCTYPE HTML>

<html>

<head>

<title>输出客户端的IP</title>

</head>

<body>

你的IP地址是(使用java代码获取输出):

<%

//在jsp页面中使用java代码获取客户端IP地址

String ip = request.getRemoteAddr();

out.write(ip);

%>

<hr/>

你的IP地址是(使用自定义标签获取输出):

<%--使用自定义标签viewIP --%>

<xdp:viewIP userName="John1231" >添加</xdp:viewIP>

</body>

</html>

时间: 2024-08-29 19:02:31

java自定义标签 权限的相关文章

[转][Java]自定义标签简介

作用:自定义标签主要用于移除 jsp 页面中的 java 代码. 实现:需要完成以下两个步骤: 编写一个实现 Tag 接口的 Java 类,把页面 java 代码移到这个 java 类中.(标签处理类) 编写标签库描述符 (tld)文件,在 tld 文件中把标签处理器类描述成一个标签. 代码:新建一个  day11 项目,在 src 目录下新建 cn.itcast.web.tag 包,ViewIPTag Java文件 package cn.itcast.web.tag; import java.

java 自定义标签 传值

<?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://

同一Page范围内多个相同自定义标签类实例化个数相关问题阐述

问题描述:(jsp自定义标签代码片段中出现出来多个相同类型的标签<JB:ToobarCellComponent.那么jsp引擎是否实例化多个标签对象呢)那么大家可能就奇怪了,研究这个问题到底对我们项目研发有何好处呢?其实这个问题可以延伸出很多关于java自定义标签的一些高级应用以及自定义标签的解析原理,比如自定义标签按钮级别的权限控制[页面控件权值记录,初始化等]等.研究这些设计框架大有所益处,以下内容但愿对你有所帮助.也欢迎大家进入群[376447127]与我交流RAD快速开发平台相关技术.

JSP2 自定义标签

实现步骤 实现自定义标签的处理类继承javax.servlet.jsp.tagext.SimpleTagSupport,并重写doTag方法 建立标签库配置文件 在jsp中使用自定义标签 一个简单的标签 文件目录结构 src/main/java |---- cn.ljl.javaweb.demo.jsp2taglib.servlet |---- HelloWorldServlet.java |---- cn.ljl.javaweb.demo.jsp2taglib |---- HelloWordT

Java web自定义标签按钮级别权限控制完美诠释(jplogic 快速开发平台)

接下来跟大家聊聊JavaWeb中权限控制,往大的方向说可以聊聊整合应用系统中的权限控制.在聊权限控制之前先跟大家聊聊RBAC.那么什么是RBAC呢?RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联的,用户通过成为适当角色的成员而得到这些角色的权限.这就极大地简化了权限的管理.在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色.角色可依新的需求和系统的

整理一份jsp自定义标签以及权限控制标签

jsp自定义标签使用场景因地制宜,可以实现自定义的标签输出功能也可以实现权限的管理 1:先定义标签类 1-1:页面输出标签 package com.suyin.web.jspsectag; import java.io.IOException; import javax.servlet.jsp.JspTagException; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.tagext.Tag; public cla

java中结合struts2自定义标签的使用

java中结合struts2自定义标签的使用 一.建立一个继承于SimpleTagSupport类实现它的doTag方法 1 package com.xiangshang.tag; 2 3 import java.io.IOException; 4 import java.util.List; 5 6 import javax.servlet.jsp.JspException; 7 import javax.servlet.jsp.PageContext; 8 import javax.serv

自定义标签 + shiro 实现权限细粒度控制

这里我们是使用shiro来实现登录验证,授权等操作,然后利用自定义jsp标签来实现权限菜单的细力度控制.所谓的细粒度控制,就是根据用户登录权限的不同,显示不同的菜单,例如,用户如果有添加用户,修改用户的权限,我们就显示这个俩个菜单,然后我们并不显示删除用户的菜单. 如何自定义jsp标签 1.定义一个权限标签,命名为mytag.tld <?xml version="1.0" encoding="UTF-8"?> <taglib xmlns="

权限(二)--权限的控制(过滤器与自定义标签)

一. 接着上一篇的说 权限(一)--用户.权限组以及权限的分配 权限的控制分为两块: 1.页面的控制(没用权限的不让他看到页面) 2.过滤控制(就算知道url,没有权限也不让进) 在项目中,都是由一个人来负责权限部分的编写,然后其他人的活中多少会涉及到一些权限相关的. 所以,权限控制的通用性是非常重要的(总不能每次写到就找写权限部分的那个人,问他怎么弄). 测试demo包: 权限控制Demo 二.过滤器 在访问url之前,进行一次过滤,同时查看当前用户是否有访问该url的权限. 为了保证通用性,