使用二进制完成权限问题

来源:互联网 发布:面纱3.0完美数据 编辑:程序博客网 时间:2024/05/22 17:27

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

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

     “&”运算:按二进位进行“与”运算。如果两个相应的二进位都为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 0
原创粉丝点击