权限管理系统(三)

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

为用户添加角色

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

<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


目录
相关文章
|
11天前
|
安全 数据安全/隐私保护
什么是权限管理
什么是权限管理
20 0
什么是权限管理
|
4月前
|
Kubernetes 安全 数据安全/隐私保护
k8s-权限管理
k8s-权限管理
40 1
|
6月前
|
数据安全/隐私保护
权限管理
权限管理
34 1
|
数据安全/隐私保护
权限管理详解
权限管理详解
114 1
|
SQL 安全 关系型数据库
第03章 用户与权限管理
第03章 用户与权限管理
107 0
|
存储 设计模式 缓存
权限管理系统,可以这么设计
权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。对权限做管理的系统,就是权限管理系统。
|
SQL Java 数据库
权限管理系统(四)
前面我们做的小项目都是一个表的,业务代码也相对简单。现在我们来做一个权限管理系统,体验一下多表的业务逻辑,顺便巩固一下过滤器的知识。!
511 2
权限管理系统(四)
|
PHP 数据库 数据安全/隐私保护
简单权限管理设计
这套权限管理是配合Zend Framework设计的,用在其他地方的时候可以做些修改。
简单权限管理设计
|
SQL 数据库 数据安全/隐私保护
权限管理系统(一)
前面我们做的小项目都是一个表的,业务代码也相对简单。现在我们来做一个权限管理系统,体验一下多表的业务逻辑,顺便巩固一下过滤器的知识。!
293 0
权限管理系统(一)
|
SQL Java 数据库连接
权限管理系统(二)
前面我们做的小项目都是一个表的,业务代码也相对简单。现在我们来做一个权限管理系统,体验一下多表的业务逻辑,顺便巩固一下过滤器的知识。!
288 0
权限管理系统(二)