基于SSM框架的JavaWeb通用权限管理系统
- - -》关注博主公众号【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通用权限管理系统的更多相关文章
- 基于Extjs 4.2的通用权限管理系统,通用后台模板,EF+MVC+Extjs 4.2
基于Extjs 4.2的通用权限管理系统,通用后台. 我们的宗旨:珍爱生命,拒绝重复!Don't Repeat Yourself!!! 本案例采用EntityFramework+MVC4.0+Extj ...
- 基于云端的通用权限管理系统,SAAS服务,基于SAAS的权限管理,基于SAAS的单点登录SSO,企业单点登录,企业系统监控,企业授权认证中心
基于云端的通用权限管理系统 SAAS服务 基于SAAS的权限管理 基于SAAS的单点登录SSO 基于.Net的SSO,单点登录系统,提供SAAS服务 基于Extjs 4.2 的企业信息管理系统 基于E ...
- 使用 Shiro 设计基于用户、角色、权限的通用权限管理系统
一.前言 在大型的信息管理系统中,经常涉及到权限管理系统 下面来个 demo,很多复杂的系统的设计都来自它 代码已经放到github上了,地址:https://github.com/larger5/s ...
- 分享基于EF+MVC+Bootstrap的通用后台管理系统及架构
基于EF+MVC+Bootstrap构建通用后台管理系统,集成轻量级的缓存模块.日志模块.上传缩略图模块.通用配置及服务调用, 提供了OA.CRM.CMS的原型实例,适合快速构建中小型互联网及行业 ...
- 分享基于EF+MVC+Bootstrap的通用后台管理系统及架构(转)
http://www.cnblogs.com/guozili/p/3496265.html 基于EF+MVC+Bootstrap构建通用后台管理系统,集成轻量级的缓存模块.日志模块.上传缩略图模块.通 ...
- 基于EF+MVC+Bootstrap的通用后台管理系统及架构
分享基于EF+MVC+Bootstrap的通用后台管理系统及架构 基于EF+MVC+Bootstrap构建通用后台管理系统,集成轻量级的缓存模块.日志模块.上传缩略图模块.通用配置及服务调用, 提供了 ...
- 如何在通用权限管理系统中集成log4net日志功能
开发人员都知道,在系统运行中要记录各种日志,自己写一个日志功能,无论是在效率还是功能扩展上来说都不是很好,目前大多用的是第三方的日志系统,其中一个非常有名,用的最多的就是log4net.下面是关于这个 ...
- ASP.NET MVC通用权限管理系统(响应布局)源码更新介绍
一.asp.net mvc 通用权限管理系统(响应布局)源码主要以下特点: AngelRM(Asp.net MVC)是基于asp.net(C#)MVC+前端bootstrap+ztree+lodash ...
- 以WCF安全认证方式调用通用权限管理系统获取基础信息资料
在B/S开发中,涉及到获取系统基础资料的问题,因为是在不同平台下的开发,采用了WCF方式获取. 下面是一个调用通用权限管理系统(吉日嘎拉)基础信息资料的一个demo供参考 调用原理图: web.con ...
随机推荐
- nginx upstream一致性哈希的实现
地址:http://wiki.nginx.org/HttpUpstreamConsistentHash 首先声明一个命令: static ngx_command_t ngx_http_upstrea ...
- ES6 常用总结——第三章(数组、函数、对象的扩展)
1.1. Array.from() Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结 ...
- 关于取整函数ceil(),floor(),round()函数得应用
ceil()返回向上取整最接近的整数. double ceil(double); floor()返回向下取整最接近的整数. double floor(double); round()用于对浮点数的四舍 ...
- day56:django:csrf_token&文件上传
目录 1.csrf介绍 2.django实现csrf_token认证 3.django实现文件上传 csrf介绍 什么是csrf? csrf:跨站请求伪造.攻击者通过HTTP请求将数据传送到服务器,从 ...
- Solidity智能合约面向对象编程(一、类的创建)
Solidity编写智能合约 1 pragma solidity ^0.4.4;//版本声明 ^代表向上兼容 pragma代表版本声明 solidity 代表开发语言 2 //定义类 3 contra ...
- _1_html_框架
创:18_3_2017修:20_3_2017 什么是html? --超文本标记语言 --告诉浏览器内容的语义 html页面的框架是什么? <!DOCTYPE html> <!--DT ...
- Python练习题 043:Project Euler 015:方格路径
本题来自 Project Euler 第15题:https://projecteuler.net/problem=15 ''' Project Euler: Problem 15: Lattice p ...
- 009 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 03 什么是变量?
009 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 03 什么是变量? 什么是变量? 形象化的生活中的例子理解什么是变量以及变量的三个元素 我们可以根据客人要求 ...
- 如何使用微软提供的TCHAR.H头文件?
转载:https://www.cnblogs.com/flyingspark/archive/2012/03/16/2399788.html 如何使用微软提供的TCHAR.H头文件? 如果你现在写的代 ...
- ConcurrentHashMap源码解析,多线程扩容
前面一篇已经介绍过了 HashMap 的源码: HashMap源码解析.jdk7和8之后的区别.相关问题分析 HashMap并不是线程安全的,他就一个普通的容器,没有做相关的同步处理,因此线程不安全主 ...