课堂作业08——MVC应用实例之权限管理
2017-05-04 21:38
204 查看
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);
}
当系统有多个用户角色时,权限管理无疑提高了系统的可用性、易用性与安全性,使多个用户在权限之内对系统数据进行管理。同时,这样的设计能够灵活的对权限进行设置,体现了系统质量属性的可修改性。
✎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);
}
当系统有多个用户角色时,权限管理无疑提高了系统的可用性、易用性与安全性,使多个用户在权限之内对系统数据进行管理。同时,这样的设计能够灵活的对权限进行设置,体现了系统质量属性的可修改性。
相关文章推荐
- springmvc+mybatis+shiro简单权限菜单管理实例
- 作业八之MVC实例应用模式
- Android6.0新应用权限管理机制详解
- SpringMVC+Shiro权限管理
- SpringMvc+hibernate+easyui简单的权限管理系统
- MVC实例应用模式
- 《用EOM的眼光评判‘我要做全国最最好的标准权限组件和通用权限管理软件’3》(2010/04/08)
- 08-应用管理
- MVC(Model -View-Controller)实例应用模式
- 基于Extjs 4.2的通用权限管理系统,通用后台模板,EF+MVC+Extjs 4.2
- 【Js应用实例】javascript管理cookie
- JobTracker之作业恢复与权限管理机制(源码分析第四篇)
- ASP.NET MVC:窗体身份验证及角色权限管理示例
- ASP.NET MVC 窗体身份验证及角色权限管理示例
- SpringMVC+Shiro权限管理【转】
- Linux服务器权限管理之sudo应用
- 基于spring3.0.5 mvc 简单用户管理实例
- MVC 自定义AuthorizeAttribute实现权限管理
- redhat7.2用户及用户组权限管理操作实例
- MVC中权限管理