课堂作业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);

}

 

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

posted @ 2017-05-04 21:38  没有比脚更长的路  阅读(136)  评论(0编辑  收藏  举报