我做了一个学生管理系统。  注册用户有2个权限    1为管理员权限,可以对表进行增删改查。  2为普通用户权限,只能对表进行查询。不能修改。    
请问这个问题,怎么实现。
技术是 servlet+jsp 来实现的。

解决方案 »

  1.   

    做个权限控制表   主表  ID   VS  类型 
    附表  类型VS对应权限
      

  2.   

    登陆了以后,把登陆信息存到session里啊。 然后用过滤器什么的,检查权限。 如果权限不够就把请求重定向了。
      

  3.   

    1.用DB保存权限
    2.用WEB服务器端配置来保存权限
    3.用LDAP分组来管理权限
    4.用服务器访问用户权限
    ......
      

  4.   

    在数据库表里记录用户的 角色登陆的时候存session里构建页面的时候判断,如果没有权限就不显示相关的操作接口
      

  5.   

    两种方案:
    1:jsp页面做两种界面,一种是管理员jsp界面;一种是普通用户jsp界面。这种方法写得代码比较多,不过也不少人用。2:用一个角色表来记录管理员角色和普通用户角色,再加一个Filter或Interceptor来检查权限。这种方法写的代码比较少,使用的人相对而言比较多。上面只是个人觉得这样而已,有哪里说错请见谅!
      

  6.   

    用户必须有个角色
    可以增加一个用户角色表
    由于你这个比较简单可以 增加在用户表增加一个字段为用户的角色字段如0为管理员 1为普通用户然后在根据用户的角色进行判断 来设置链接的可用性
    如:<c:if test="${user.role==0}">增加</c:if>
    <c:if test="${user.role==1}"><a href="#">增加</a></c:if>
      

  7.   

    login一个FILTERprivilege一个filteruser表
    user_idrole表
    role_idt_user_role
    user_id, role_idt_privilege_type
    priv_id, priv_descr
    如:
    1    add
    2    view
    3    edit
    4    deletet_sys_menu
    下面是取得一个登录用户的所有菜单
    menu_id, menu_ur, menu_img, lft, rgtt_sys_privilege
    auto_id, role_id, menu_id, priv_id
     SELECT 
    node.menu_id menuId,
    node.menu_descr menuDescr,
    node.lft,
    node.rgt,
    node.menu_url menuUrl,
    (COUNT(parent.menu_id)-1) menuLevel,
          node.parent_id pid
    FROM t_menu  node,
    t_menu  parent,
          (
              select 
              distinct menu_id menu_id
              from t_sys_privilege 
              where 
              role_id=(select role_id from t_user_role where employee_id=#{employeeId})
              and menu_id in
                  (
                    select menu_id from t_sys_privilege where priv_type_id ='1' and role_id in
                        (
                          select role_id from t_user_role where employee_id=#{employeeId}
                        )
                  )
        )priv_menu
    WHERE 
        priv_menu.menu_id=node.menu_id
        AND (node.lft BETWEEN parent.lft AND parent.rgt)
        AND node.menu_descr!='root'
    GROUP BY node.menu_id
    ORDER BY node.lft,node.menu_seq;