我现在用SSH做一个团购系统,现在对权限进行控制,我现在的想法是这样的:
将所有的菜单都做个标记放到数据库中,当用户进行访问的时候就从数据库中查出用户是否有访问这些菜单的权利,有就把菜单显示出来,没有就不显示,不知道这样的想法可不可以,所有的菜单都做标记放到数据库中,可不可取?有没有更好的办法?

解决方案 »

  1.   

    lz意思是不是说,用户只能看到自己有权限的菜单,如果没有此权限,就看不到对应菜单?
    这样挺好的,也是很大众化的做法但有时候,比如A用户本来有删除权限的,后来不给他删除权限了,但他已经记住执行删除时的url路径了,那么他还可以直接用路径访问,虽然这个不太可能发生,但预防一下还是没坏处的,在增加个权限拦截器吧,每次进入控制器层时验证一下
      

  2.   

    恩,谢谢各位了,在问一下,对于那些公用的并且在多个页面显示的菜单各位是怎么处理的?我的想法是当服务器启动的时候就初始化这些信息,然后放到ServletContext或者是cache中,不知道各位是怎么处理的,刚工作,对这些处理还不是很熟,希望各位帮帮我
      

  3.   


    菜单应该在服务器启动的时候,统一放在应用范围(application或servletcontext)内,然后根据登陆用户的权限,显示菜单的子集合
      

  4.   

    恩 dickli1986,不过我有个疑问如果数据量很大放到application或servletContext中是否很好,还有管理员后台可以控制前台这些公用菜单的显示,修改显示情况以后,必须修改数据库同时修改application中存的值,是否是这样?可以给我讲讲cache吗?
      

  5.   

    恩 的确是这样,还有那个cache是怎么回事,可以给我讲讲吗?不好意思啊,问这么多