zoukankan      html  css  js  c++  java
  • 课堂作业08——MVC应用实例之权限管理

    MVC在Java Web应用程序中的实例分析

    MVC框架的应用:

    在一下比较大型的企业中,MVC加三层架构使用的相对比较普遍。它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。

    我们经常使用的博客园、CSDN等都会使用MVC框架。

    用户权限模块的实现代码:

    (1)  视图层:

    首先,JSP页面(视图层)的js函数中使用ajax技术进行传值,将URL赋值为对应的action,调用action中的方法,即通过hibernate(模型层)获取数据库数据。将收到的数据显示在JSP页面。

    实现MVC思想中:发送用户动作(例如按钮点击)到控制器,并可以处理很多不同的视图。

    主要代码:

    $(function() {

            var power;

            var html = "";

            $

            .ajax({

                url : "user_menu.action",

                type : "post",

                dataType : "json",

                success : function(data) {

                    $

                    .each(data,

                    function(i, item) {

                        if (item.rightname == "管理员") {//显示左侧菜单栏

                        html += "<li><a href='user_FindAllUser.action' target='frmright'><span class='text_slice spanStyle'>用户管理</span></a></li>"

                        ...

                         ...

                         ...

                         }

                     }

                });

                    $("#category").html(html);

            }

        });

    })

    (2)  控制层

    当JSP页面提交了用户需求,交给控制器去处理,控制器需要从模型中找到对应的数据,并返回到JSP页面。

    实现MVC思想中:接受用户的输入,解释用户的行为,并提供模型数据至视图。消除模型与视图依赖关系。

    主要代码:

    PrintWriter out = response.getWriter();

            List<SysRight> list = rightService.findByLoginUserId(user.getUserId());//调用hibernate中的数据

            for (SysRight sysRight : list) {

                System.out.println(sysRight);

            }

            String json = JSONSerializer.toJSON(list).toString();

            out.print(json);

    (3)  模型层

    模型层中含有数据库的全部数据,并且定义了相应的方法去调用,当控制层调用这些方法时,像控制层传递这些数据。

    实现MVC思想中:为多个视图提供数据,且拥有最多的处理任务。

    主要代码:

    public List<SysRight> findByLoginUserId(String id) {

    String hql="from SysUser u join u.sysRole r join r.sysRight m where u.userId = '"+id+"'";

    return rightDao.findByHql(hql);

    }

    public List<SysRight> findByHql(String hql, Object... objects) {   

            return (List<SysRight>) this.getHibernateTemplate().find(hql,objects);

    }

    当系统有多个用户角色时,权限管理无疑提高了系统的可用性、易用性与安全性,使多个用户在权限之内对系统数据进行管理。同时,这样的设计能够灵活的对权限进行设置,体现了系统质量属性的可修改性。

  • 相关阅读:
    python 正则
    python qrcode二维码生成与识别
    python 轮询,长轮询
    Python随心记--module模块和包
    PHP-AOP简介
    PHP三层结构(下)——PHP实现AOP
    PHP三层结构(上)——简单三层结构
    PHP--翻牌活动(概率中奖..............)
    MySQL(表锁)、PHP(文件锁)锁机制及应用场景
    TP5一对一、一对多关联模型的使用
  • 原文地址:https://www.cnblogs.com/love528/p/6810012.html
Copyright © 2011-2022 走看看