- - -》关注博主公众号【C you again】,获取更多IT资源(IT技术文章,毕业设计、课程设计系统源码,经典游戏源码,HTML网页模板,PPT、简历模板,!!还可以投稿赚钱!!,点击查看- - - >>>>>

欢迎访问博主个人网站,记得收藏哦,点击查看 - - - >>>>

查看更多系统:系统大全,课程设计、毕业设计,请点击这里查看

01 概述

这是一个通用权限管理系统项目,基于SSM(Spring + Spring-MVC +Mybatis)框架开发,其SQL语句持久在Hibernate 中,对原生SQL的支持较好。制作该系统的初衷是用来帮助JavaWeb开发者或初学者学习、借鉴的需要。读者可以在这个 系统基础上引入其它技术或完全依赖本系统技术进行功能拓展,来开发实际应用需求的项目,免去了应用系统中对于“ 权限设计”这一部分的麻烦。

02 技术

Jsp 、SSM(Spring + Spring-MVC + Mybatis)、Shiro 、Mvc、Jdbc、MySQL、DWZ富客户端框架 + Jquery + Ajax

03 环境

JDK:JDK1.6+ 、WEB:Tomcat6.0+ 、DB:MySQL5+ 、IDE: MyEclipse8.5+/Eclipse4.4+

04 工程结构

05 运行截图

登录界面

员工管理界面

部门管理界面

角色管理界面

06 主要代码

员工部门管理

package com.kzfire.portal.action.user;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; import com.kzfire.portal.base.BaseAction;
import com.kzfire.portal.entiy.SysDept;
import com.kzfire.portal.service.DeptService;
import com.kzfire.portal.service.UserService;
import com.kzfire.portal.utils.JSONUtils;
import com.kzfire.portal.utils.VoFactory;
import com.kzfire.portal.vo.ConditionVo; @RequestMapping("/user/dept")
@Controller
public class DeptAction extends BaseAction{
@Autowired
DeptService deptService;
@Autowired
UserService userService; /**
* 设置员工部门
* @param model
* @param request
* @param response
* @return
*/
@RequestMapping("/setUserDept")
public String setUserDept(Model model,HttpServletRequest request,HttpServletResponse response) { String userId=request.getParameter("userId");
model.addAttribute("userId", userId);
//设置部门树
List<SysDept> list=deptService.getAllDept();
model.addAttribute("data", JSONUtils.parseList(list));
return VIEW+"user/dept/setUserDept";
} @RequestMapping("/saveUserdept")
public ModelAndView saveUserdept(Model model, HttpServletRequest request,
HttpServletResponse response) {
try {
Integer userId=Integer.parseInt(request.getParameter("userId"));
Integer deptId=Integer.parseInt(request.getParameter("deptId"));
deptService.saveUserdept(userId,deptId);
} catch (Exception e) {
e.printStackTrace();
return ajaxDoneError("操作失败:"+e.getMessage());
}
return ajaxDoneSuccess("操作成功");
} @RequestMapping("/main")
public String list(Model model,HttpServletRequest request,HttpServletResponse response) {
//设置部门树
List<SysDept> list=deptService.getAllDept();
System.out.println("json格式----->" + JSONUtils.parseList(list).toString() );
model.addAttribute("data", JSONUtils.parseList(list));
return VIEW+"user/dept/dept";
} @RequestMapping("/userList")
public String userList(Model model,HttpServletRequest request,HttpServletResponse response) {
ConditionVo cvo=VoFactory.getConditionVo(request);
String deptId=request.getParameter("deptId");
if("1".equals(deptId))
{
cvo.setText4("1");
}else
{
cvo.setText3(request.getParameter("deptId"));
}
request.setAttribute("deptId", deptId);
cvo.setTotalCount(userService.getUserCount(cvo));
model.addAttribute("vo", cvo);
model.addAttribute("list", userService.getList(cvo));
return VIEW+"user/dept/userList";
} @RequestMapping("/add")
public String add(Model model,HttpServletRequest request,HttpServletResponse response) {
SysDept dept=new SysDept();
dept.setPid(Integer.parseInt(request.getParameter("selDept")));
model.addAttribute("dept", dept);
return VIEW+"user/dept/deptEdit";
}
@RequestMapping("/edit")
public String edit(Model model,HttpServletRequest request,HttpServletResponse response) {
SysDept dept=deptService.getDeptById(Integer.parseInt(request.getParameter("selDept")));
model.addAttribute("dept", dept);
return VIEW+"user/dept/deptEdit";
} @RequestMapping("/del")
public ModelAndView del(Model model, HttpServletRequest request)
{
try {
String deptId=request.getParameter("selDept");
deptService.delDeptById(Integer.parseInt(deptId));
} catch (Exception e) {
e.printStackTrace();
return ajaxDoneError("操作失败:"+e.getMessage());
}
return ajaxDoneSuccess("操作成功");
} @RequestMapping("/save")
public ModelAndView save(SysDept dept,Model model, HttpServletRequest request,
HttpServletResponse response) {
try {
if(dept!=null)
{
deptService.saveDept(dept);
}
} catch (Exception e) {
e.printStackTrace();
return ajaxDoneError("操作失败:"+e.getMessage());
}
return ajaxDoneSuccess("操作成功");
}
}

角色管理

package com.kzfire.portal.action.user;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; import com.kzfire.portal.base.BaseAction;
import com.kzfire.portal.entiy.SysRole;
import com.kzfire.portal.service.RoleService;
import com.kzfire.portal.utils.VoFactory;
import com.kzfire.portal.vo.ConditionVo;
import com.kzfire.portal.vo.PerGroupVo; @RequestMapping("/user/role")
@Controller
public class RoleAction extends BaseAction{
@Autowired
RoleService roleService; @RequestMapping("/list")
public String list(Model model,HttpServletRequest request,HttpServletResponse response) {
ConditionVo cvo=VoFactory.getConditionVo(request);
cvo.setTotalCount(roleService.getTableCount("sys_role"));
model.addAttribute("vo", cvo);
model.addAttribute("list", roleService.getList(cvo));
return VIEW+"permission/role/list";
} /**
* 权限编辑页面
* @param model
* @param request
* @return
*/
@RequestMapping("/editPermission")
public String editPermission(Model model, HttpServletRequest request)
{
String roleId=request.getParameter("roleId");
//获取角色权限
List<PerGroupVo> group=roleService.getPerGroupVoByUserId(Integer.parseInt(roleId));
model.addAttribute("group", group);
model.addAttribute("roleId", roleId);
return VIEW+"permission/role/editPermission";
} @RequestMapping("/savePer")
public ModelAndView savePer(Model model, HttpServletRequest request,
HttpServletResponse response) {
try {
String[] perIds=request.getParameterValues("perId");
roleService.savePermission(perIds,Integer.parseInt(request.getParameter("roleId")));
} catch (Exception e) {
e.printStackTrace();
return ajaxDoneError("操作失败");
} return ajaxDoneSuccess("操作成功");
} @RequestMapping("/add")
public String add(Model model, HttpServletRequest request)
{
model.addAttribute("role", new SysRole());
return VIEW+"permission/role/roleEdit";
} @RequestMapping("/edit")
public String edit(Model model, HttpServletRequest request)
{
String roleId=request.getParameter("roleId");
SysRole role=roleService.getRoleById(Integer.parseInt(roleId));
model.addAttribute("role", role);
return VIEW+"permission/role/roleEdit";
} @RequestMapping("/del")
public ModelAndView del(Model model, HttpServletRequest request)
{
try {
String roleId=request.getParameter("roleId");
roleService.delRoleById(Integer.parseInt(roleId));
} catch (Exception e) {
e.printStackTrace();
return ajaxDoneError("操作失败");
}
return ajaxDoneSuccess("操作成功");
} @RequestMapping("/save")
public ModelAndView save(SysRole role,Model model, HttpServletRequest request,
HttpServletResponse response) {
if(role!=null)
{
roleService.saveShop(role);
}
return ajaxDoneSuccess("操作成功");
} }

07 其它

1、MySQL数据库账户

MySQL数据库默认端口:“3306”、数据库名:“kzfire”、账户名:“root”、密码:空。

2、SQL文件

SQL文件放在“MySQL数据库SQL文件” 目录,需通过“Navicat for MySQL”工具执行此SQL文件。

3、系统启动文件

系统启动文件是“webroot”目录下的“login.jsp”

4、系统登录用户名及密码

“login.jsp”启动(运行)后,正常情况下进入登录界面,用户名输入“admin”,密码输入“123456”。如果登录不进去,很有可能是数据库参数配置问题导致,请检查数据库参数配置文件,数据库参数配置文件放

08 源码下载

关注公众号【C you again】,回复“基于SSM框架的JavaWeb通用权限管理系统”免费领取。

亦可直接扫描主页二维码关注,回复“基于SSM框架的JavaWeb通用权限管理系统”免费领取,点此打开个人主页

说明:此源码来源于网络,若有侵权,请联系删除!!

基于SSM框架的JavaWeb通用权限管理系统的更多相关文章

  1. 基于Extjs 4.2的通用权限管理系统,通用后台模板,EF+MVC+Extjs 4.2

    基于Extjs 4.2的通用权限管理系统,通用后台. 我们的宗旨:珍爱生命,拒绝重复!Don't Repeat Yourself!!! 本案例采用EntityFramework+MVC4.0+Extj ...

  2. 基于云端的通用权限管理系统,SAAS服务,基于SAAS的权限管理,基于SAAS的单点登录SSO,企业单点登录,企业系统监控,企业授权认证中心

    基于云端的通用权限管理系统 SAAS服务 基于SAAS的权限管理 基于SAAS的单点登录SSO 基于.Net的SSO,单点登录系统,提供SAAS服务 基于Extjs 4.2 的企业信息管理系统 基于E ...

  3. 使用 Shiro 设计基于用户、角色、权限的通用权限管理系统

    一.前言 在大型的信息管理系统中,经常涉及到权限管理系统 下面来个 demo,很多复杂的系统的设计都来自它 代码已经放到github上了,地址:https://github.com/larger5/s ...

  4. 分享基于EF+MVC+Bootstrap的通用后台管理系统及架构

      基于EF+MVC+Bootstrap构建通用后台管理系统,集成轻量级的缓存模块.日志模块.上传缩略图模块.通用配置及服务调用, 提供了OA.CRM.CMS的原型实例,适合快速构建中小型互联网及行业 ...

  5. 分享基于EF+MVC+Bootstrap的通用后台管理系统及架构(转)

    http://www.cnblogs.com/guozili/p/3496265.html 基于EF+MVC+Bootstrap构建通用后台管理系统,集成轻量级的缓存模块.日志模块.上传缩略图模块.通 ...

  6. 基于EF+MVC+Bootstrap的通用后台管理系统及架构

    分享基于EF+MVC+Bootstrap的通用后台管理系统及架构 基于EF+MVC+Bootstrap构建通用后台管理系统,集成轻量级的缓存模块.日志模块.上传缩略图模块.通用配置及服务调用, 提供了 ...

  7. 如何在通用权限管理系统中集成log4net日志功能

    开发人员都知道,在系统运行中要记录各种日志,自己写一个日志功能,无论是在效率还是功能扩展上来说都不是很好,目前大多用的是第三方的日志系统,其中一个非常有名,用的最多的就是log4net.下面是关于这个 ...

  8. ASP.NET MVC通用权限管理系统(响应布局)源码更新介绍

    一.asp.net mvc 通用权限管理系统(响应布局)源码主要以下特点: AngelRM(Asp.net MVC)是基于asp.net(C#)MVC+前端bootstrap+ztree+lodash ...

  9. 以WCF安全认证方式调用通用权限管理系统获取基础信息资料

    在B/S开发中,涉及到获取系统基础资料的问题,因为是在不同平台下的开发,采用了WCF方式获取. 下面是一个调用通用权限管理系统(吉日嘎拉)基础信息资料的一个demo供参考 调用原理图: web.con ...

随机推荐

  1. iscroll5 滚动条根据内容高度自动显示隐藏及强制横屏时方向错位

    横竖屏方向错位: move: function (e) { if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { r ...

  2. vue v-for渲染数据出现DOMException: Failed to execute 'removeChild' on 'Node': The node .....

    在项目中,使用了vue的v-for渲染数组数据,在一次改变数组的时候出现异常报错,而实际的数组是已经变化过的了,页面卡死 网上找了一下原因,说是vue的DOM渲染的时候,删除之后DOM里面的还没有反应 ...

  3. 一文读懂MySQL的索引结构及查询优化

    回顾前文: 一文学会MySQL的explain工具 (同时再次强调,这几篇关于MySQL的探究都是基于5.7版本,相关总结与结论不一定适用于其他版本) MySQL官方文档中(https://dev.m ...

  4. 属性序列化自定义与字母表排序-JSON框架Jackson精解第3篇

    Jackson是Spring Boot默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库.有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的,没有这种限制.它提供了很 ...

  5. .net core中的那些常用的日志框架(Logging篇)

    前言 日志,在我们每个项目中是必不可少的,它不仅能在调试的时候测试数据,而且在项目上线,也是我们排查错误的得力助手,那我就能谈谈,用的多的几个日志框架吧!如果有不对的地方,欢迎来指教错误,谢谢! As ...

  6. ViewBinding的简单使用

    Android自家的,又可以省去findviewbyid(),而且Butterknife上大神都已经推荐使用的,还有什么理由不去改写呢 build.gradle 开启viewBinding功能 and ...

  7. Python-输入输出-input ouput

    输入.输出? 这种统称为IO流,也就是数据流向,在标准中,从终端输入称为标准输入 sidin,从终端输出为标准输出 stdout,从终端错误输出则为标准错误输出 stderr.这些只是IO流中终端方面 ...

  8. 删除链表的倒数第N个节点(头部加一个哑结点)

    我的代码:测试用例[1,2]2,  时会报错,无法不能删除第一个指针 /** * Definition for singly-linked list. * public class ListNode ...

  9. SQL实战——04. 查找所有已经分配部门的员工的last_name和first_name以及dept_no (一个逗号引发的血案)

    查找所有已经分配部门的员工的last_name和first_name以及dept_noCREATE TABLE `dept_emp` (`emp_no` int(11) NOT NULL,`dept_ ...

  10. vue项目打包-2-九五小庞

    vue项目打包 一.终端运行命令 npm run build 二.打包成功的标志与项目的改变,如下图: 3.点击index.html,通过浏览器运行,出现以下报错,如图: 四.那么应该如何修改呢?具体 ...