使用二进制完成权限问题

      学习Java以后大家都会了解到二进制和"&"运算,本篇博客就是将此两个知识点结合起来完成我们项目中复杂的权限问题。

  

数字                                        二进制
10001
20010
40100
81000
151111

     上表中是各个数字对于转换成的二进制数,转换规则我就不做详细介绍了,

     “&”运算:按二进位进行“与”运算。如果两个相应的二进位都为1,则该位的结果值为1,否则为0。即

          0&0=0;0&1=0;1&0=0;1&1=1;

      所以我总结这两个知识点的特性我们可以给各个需要权限的部门赋予一个权限值,我们可以将上表中的数字分别赋予5个部门权限值,权限值为“5”的为超级管理部门可以访问全部权限而权限值为1,2,4,8的相互之间做"&"运算结果都得不到"1",所以这个四个部门各不相干,而超级管理员权限值为"15"并不是随意赋予的,而是1+2+4+8=15所得的,所以我们可以很方便的分配权限,上级权限的权限值即是他所属所有下级部门权限值的总和,下面实例代码是我java web开发中的具体所用的

if(<%=(String)session.getAttribute("quanXianNumber")%>&1)
    {
     location.href="PiaoWuGuanLi/PiaoWuDingDanIndex.jsp" ;
       }
      else{
     alert("权限不够,请联系超级管理员!");
  }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值