权限管理系统(三)

简介: 前面我们做的小项目都是一个表的,业务代码也相对简单。现在我们来做一个权限管理系统,体验一下多表的业务逻辑,顺便巩固一下过滤器的知识。!

为用户添加角色

在显示用户的基础上,应该添加为用户授权角色的超链接。

<tableborder="1px">

       <tr>

           <td>用户名</td>

           <td>密码</td>

           <td>操作</td>

       </tr>

       <c:forEachitems="${list}"var="user">

           <tr>

               <td>${user.username}</td>

               <td>${user.password}</td>

               <td>

                   <ahref="${pageContext.request.contextPath}/LookUserRole?user_id=${user.id}">

                       为用户授权角色

                   </a>

                   <ahref="#">修改用户</a>

                   <ahref="#">删除用户</a>


               </td>

           </tr>

       </c:forEach>

   </table>

  • 效果:

13.jpg

  • 处理显示授权页面的Servlet

//得到客户端传递过来的user_id

       Stringuser_id=request.getParameter("user_id");


       //获取该用户所有的角色

       UserServiceuserService=newUserService();

       List<Role>userRoles=userService.getUserRole(user_id);


       //得到全部的角色

       RoleServiceroleService=newRoleService();

       List<Role>allRoles=roleService.getAllRole();


       //为用户授权的JSP页面也应该显示用户的信息,所以把User对象也传递过去给JSP页面

       Useruser=userService.findUser(user_id);


       request.setAttribute("user",user);

       request.setAttribute("userRoles",userRoles);

       request.setAttribute("allRoles",allRoles);


       //跳转到显示页面

       request.getRequestDispatcher("/WEB-INF/jsp/LookUserRole.jsp").forward(request,response);

  • 授权页面JSP

<tableborder="1px">

   <tr>

       <td>当前用户名称</td>

       <td>${user.username}</td>

   </tr>


   <tr>

       <td>当前用户所拥有的角色</td>

       <td>

           <c:forEachitems="${userRoles}"var="userRole">

               ${userRole.name}

           </c:forEach>

       </td>

   </tr>


   <tr>

       <td>当前系统所拥有的角色</td>

       <td>

           <formmethod="post"action="${pageContext.request.contextPath}/AddUserRole">


               <%--要为用户添加角色,需要知道是哪一个用户,通过hidden传递过去用户的id--%>

               <inputtype="hidden"name="user_id"value="${user.id}">


               <c:forEachitems="${allRoles}"var="roles">

                   <inputtype="checkbox"name="role_id"value="${roles.id}">${roles.name}

               </c:forEach>


               <inputtype="submit"value="添加角色!">

           </form>

       </td>

   </tr>


</table>


  • 效果:

14.jpg

  • 处理表单数据并为用户添加角色的Servlet

//得到传递进来的role_id

       String[]ids=request.getParameterValues("role_id");


       try{

           //得到想要修改哪个用户的id

           Stringuser_id=request.getParameter("user_id");


           //通过id获取得到User对象

           UserServiceuserService=newUserService();

           Useruser=userService.findUser(user_id);


           //通过id获取得到Role对象,再把对象用List集合装载起来

           RoleServiceroleService=newRoleService();

           List<Role>list=newArrayList<>();

           for(Stringid:ids){

               Rolerole=roleService.findRole(id);

               list.add(role);

           }


           //更新用户所拥有的角色

           userService.updateUserRole(user,list);


           request.setAttribute("message","添加角色成功!");


       }catch(Exceptione){

           e.printStackTrace();

           request.setAttribute("message","添加角色失败!");

       }

       request.getRequestDispatcher("/message.jsp").forward(request,response);




角色模块


添加角色


  • 提供添加角色页面的Servlet

//直接跳转到jsp页面即可

       request.getRequestDispatcher("WEB-INF/jsp/AddRole.jsp").forward(request,response);

  • 显示页面JSP

<formaction="${pageContext.request.contextPath}/AddRoleController"method="post">

       <tableborder="1px">

           <tr>

               <td>角色名称</td>

               <td><inputtype="text"name="name"></td>

           </tr>

           <tr>

               <td>详细描述</td>

               <td><textareaname="description"  cols="30"rows="10"></textarea></td>

           </tr>

   

           <tr>

               <td>

                   <inputtype="submit"value="添加角色">

               </td>

           </tr>

       </table>

   

   </form>

  • 处理表单数据并添加角色的Servlet

//得到客户端带过来的数据

       Stringname=request.getParameter("name");

       Stringdescription=request.getParameter("description");


       try{

           //创建对象并封装数据

           Rolerole=newRole();

           role.setId(WebUtils.makeId());

           role.setName(name);

           role.setDescription(description);


           //调用Service方法,完成功能

           RoleServiceroleService=newRoleService();

           roleService.addRole(role);


           request.setAttribute("message","添加角色成功!");

       }catch(Exceptione){

           request.setAttribute("message","添加角色失败!");

           e.printStackTrace();

       }


       request.getRequestDispatcher("/message.jsp").forward(request,response);




查看所有的角色


  • 提供页面的Servlet

//得到所有的角色

       RoleServiceroleService=newRoleService();

       List<Role>list=roleService.getAllRole();


       request.setAttribute("list",list);

       request.getRequestDispatcher("/WEB-INF/jsp/LookRoles.jsp").forward(request,response);

  • 显示页面JSP

<c:iftest="${empty(list)}">

       您还没有任何角色,请添加!

   </c:if>

   

   <c:iftest="${!empty(list)}">

       <tableborder="1px">

           <tr>

               <td>角色名称</td>

               <td>描述</td>

           </tr>

   

           <c:forEachitems="${list}"var="role">

               <tr>

                   <td>${role.name}</td>

                   <td>${role.description}</td>

               </tr>

           </c:forEach>

       </table>

   

   

   </c:if>

  • 效果

15.jpg


为角色授权


与上面是类似的,我们要在查看角色的时候,添加授权的功能!

<c:forEachitems="${list}"var="role">

           <tr>

               <td>${role.name}</td>

               <td>${role.description}</td>

               <td>

                   <ahref="${pageContext.request.contextPath}/LookRolePrivilege?role_id=${role.id}">

                       为角色授权

                   </a>

                   <ahref="#">删除角色</a>

                   <ahref="#">修改角色</a>

               </td>

           </tr>

       </c:forEach>

  • 效果:

16.jpg


目录
相关文章
|
13天前
|
Linux 数据安全/隐私保护
权限管理
inux权限管理是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所有者(owner)、群组(group)和其他(others)。 每个文件和文件夹都有一个所有者,这是创建该文件或文件夹的用户。所有者拥有最高的权限,可以对文件和文件夹进行更改、读取和删除。群组是一组用户,他们可以共享文件和文件夹的权限。其他用户是除所有者和群组以外的其他用户。 Linux使用三个主要的权限:读、写和执行。读权限允许用户查看文件或文件夹的内容,写权限允许用户更改文件或文件夹的内容,执行权限允许用户运行文件或文件夹中的程序。是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所
11 0
|
1月前
|
Linux 数据安全/隐私保护
权限管理权限管理
inux权限管理是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所有者(owner)、群组(group)和其他(others)。 每个文件和文件夹都有一个所有者,这是创建该文件或文件夹的用户。所有者拥有最高的权限,可以对文件和文件夹进行更改、读取和删除。群组是一组用户,他们可以共享文件和文件夹的权限。其他用户是除所有者和群组以外的其他用户。 Linux使用三个主要的权限:读、写和执行。读权限允许用户查看文件或文件夹的内容,写权限允许用户更改文件或文件夹的内容,执行权限允许用户运行文件或文件夹中的程序。是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所
22 0
|
1月前
|
Linux 数据安全/隐私保护
vLinux权限管理
Linux权限管理是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:所有者(owner)、群组(group)和其他(others)。 每个文件和文件夹都有一个所有者,这是创建该文件或文件夹的用户。所有者拥有最高的权限,可以对文件和文件夹进行更改、读取和删除。群组是一组用户,他们可以共享文件和文件夹的权限。其他用户是除所有者和群组以外的其他用户。 Linux使用三个主要的权限:读、写和执行。读权限允许用户查看文件或文件夹的内容,写权限允许用户更改文件或文件夹的内容,执行权限允许用户运行文件或文件夹中的程序。是一种控制用户和程序对文件和文件夹的访问的方法。它使用三个主要的概念:
14 0
|
SQL 安全 关系型数据库
第03章 用户与权限管理
第03章 用户与权限管理
85 0
|
数据采集 SQL 存储
DataWorks数据质量介绍及实践 | 《一站式大数据开发治理DataWorks使用宝典》
数据质量问题虽然从数据工程师的角度来看是个简单问题,但是从业务的角度来看是个很严重的问题。所以数据质量是数据开发和治理全生命周期中,非常重要的一个环节。在DataWorks产品版图里,数据质量也是非常重要的模块之一。
4155 0
DataWorks数据质量介绍及实践 | 《一站式大数据开发治理DataWorks使用宝典》
|
存储 设计模式 缓存
权限管理系统,可以这么设计
权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。对权限做管理的系统,就是权限管理系统。
|
SQL Java 数据库
权限管理系统(四)
前面我们做的小项目都是一个表的,业务代码也相对简单。现在我们来做一个权限管理系统,体验一下多表的业务逻辑,顺便巩固一下过滤器的知识。!
481 2
权限管理系统(四)
|
存储 缓存 运维
基于RBAC模型的权限管理设计
RBAC模型(Role-Based Access Control:基于角色的访问控制)是比较早期提出的权限实现模型,在多用户计算机时期该思想即被提出,其中以美国George Mason大学信息安全技术实验室(LIST)提出的RBAC96模型最具有代表,并得到了普遍的公认。 RBAC认为权限授权的过程可以抽象地概括为:Who是否可以对What进行How的访问操作,并对这个逻辑表达式进行判断是否为True的求解过程,也即是将权限问题转换为Who、What、How的问题,Who、What、How构成了访问权限三元组,具体的理论可以参考RBAC96。
472 0
基于RBAC模型的权限管理设计
|
SQL 数据库 数据安全/隐私保护
权限管理系统(一)
前面我们做的小项目都是一个表的,业务代码也相对简单。现在我们来做一个权限管理系统,体验一下多表的业务逻辑,顺便巩固一下过滤器的知识。!
262 0
权限管理系统(一)
|
SQL Java 数据库连接
权限管理系统(二)
前面我们做的小项目都是一个表的,业务代码也相对简单。现在我们来做一个权限管理系统,体验一下多表的业务逻辑,顺便巩固一下过滤器的知识。!
270 0
权限管理系统(二)