版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、SSH 框架搭建 +权限管理权限管理 -小秦 (非商用 )SSH 框架构建 +权限管理1,涉及知识点 :1,后台技术 :shh 框架 (spring+strats+hibernate), maven 2,前台技 术 :bootstrap、 ajax、 javascript 等。 3、MVC 框架 2、编译环境MyClipse、tomcat7(或 tomcat6)、maven、mysql 数据库3、功能介绍 一般来说,不同的用户有两种方式访问不同功能的网站(个人观点 )。(1)单独为用户编写一个网页,以便同类用户可以访问该网页当用 户有多种类型的时,就有更多的网页要做。(2) 采用权限管理 :网
2、站功能存储在数据库中 (数据清单是功能 模块的 html 代码 ) ,因此根据不同的用户角色给出不同的功能模块 (拥有不同的网站访问权限 )。管理员还可以实时更改用户功能,以实 现动态更改。 4.实现原理只是存储在数据库中的功能模块的 html 代码。当用户登录时,可以 从数据库中找到查看用户的权限。对于 html 代码, web 前台遍历这 些代码并将它们添加到相应的位置。 (不要小看哦, )版权所有 -qqw.null版权管理 -由小倩 (非商业用途 )5,代码实现 (由于新项目的建设,有些代码有点错误。每个人都试 图自己纠正错误 )(1) SSH框架构建1) 确保您的计算机安装了mycl
3、ipse、tomcat7(或 tomcat6)、maven、mysql 数据库 (环境构建自行解决 )2) 打开 myclipse 新 web 项目项目项目项目名称J2ee版支持注释功能使用 maven管理框架包255空权限管理 -由小秦 (非商业用途 )3)添加基本配置文件(1)(2)(3)(1)添加数据库配置文件 文件“新建”源文件夹输入 src/main/resource直接复制并粘贴到目录空权限管理 -由小秦(非商业用途 ) (2)添加网络配置文件直接复制并粘贴到目录 (3)修改 pom.xml 文件 (以下代码替换原始 pom.xml 文件的内容 )网络空权限管理-由小秦(非商业用途
4、 )org . slf4jJCL-over-slf4j 1 . 6 . 6 运行时 org . slf4jslf4j-log4j 12 1 . 6 . 6 运行时空权限管理-由小秦(非商业用途 )org . AspectJ aspectjweaver 1 . 8 . 0org . AspectJ aspectjrt 1 . 8 . 0org . hibernate 256 199版权管理 -由小芹 (非商业用途 ) Hibernate-entity manager 4 . 3 . 5 . finalcom . fasterxml . Jackson . core Jackson-core 2
5、. 4 . 1com . fasterxml . Jackson . core Jackson-data bind commons-iocommons-io 2.4 256 空 权限管理 -由小秦(非商业用途 )4)添加包和相应的 java 类 在构建相应的包后,直接在相应的包下测试这些类5)修改数据库、网络和其他配置文件 修改 jdbc .属性文件修改要连接的本地数据库名称空权限管理-由小秦(非商业用途 )修改调度程序 -servlet.xml 文件找到 123通信不能出错 4版权所有-QQW。空权限管理-由小秦(非商业用途 )修改 mvc-config.xml 文件6)在 Mysql 数据
6、库中建立对应于上述 的数据库结束了 ssh 框架版权所有 -199 空权限管理-由小秦(非商业用途 )(2)权限管理1)需求分析确定数据库实体类2)建立数据库实体类 用户(用户类)、角色和菜单(角色菜单类 )、用户角色(角色类)、网络菜 单(菜单函数类 )1导入 javax . persistenee . column 导入 javax . persistenee . entityimport javax . persiste nee . gen erated VaLue 导入 javax . persiste nee . GenerationType 导入 javax . persisten
7、ee . Id 导入 javax . persistenee . tableimport javax . persistenee . UniqueConstraint Entity Table(name =, eatalog =, UniqueConstraints = UniqueConstraint(ColumnAmes = )publie elass User private Integer UserId的版权属于-QQW。空权限管理 -小倩(非商用 )私有字符串用户名 私有字符串密码 私有字符串角色名 IdGeneratedValue策略二生成类型。IDENTITY) Column(n
8、ame =, unique二true, nullable = false)公共整数GetUserId() ReturnUserId;publicvoid setUserld(整数用户标识) this.userld = userid列(名称= )公共字符串 GetUserName() returnUserName;publicvoid 设置用户名 (字符串用户名 ) this.userName =用户名; Column(name = )公共字符串 GetPassword() return Password; publicvoid setPassword字符串密码) this.password 二
9、密码; 列(名称= )公共字符串 GetRoleName() ReturnRoleName; publicvoid setRoleName(字符串 RoleName) this . RoleName = RoleName;的版权属于 -qqw.null版权管理 -由小倩 (非商业用途 )2, RoleAndMenu(角色菜单类)package cn . qi Wei bea;n导入 javax . persistenee . column 导入 javax . persistenee . entityimport javax . persistence . generated VaLueimp
10、ortjavax . persistence . Gen erati on Type; 导入 javax . persiste nee . Id 导入 javax . persiste nee .tableimport javax . persistence . UniqueConstrain;t EntityUniqueConstraints = UniqueConstraint(columnNames = )public class RoleAndMenu private Integer RoleAndMenu;私有字符串角色名;/角色名私有字符 串 webMenuName/菜单名priv
11、ate string menu temarray ;/ 子 菜 单 数 组privateintegermenuelevel/menu level id generated value(strategy = generation type . identity) column(name = ,unique = true,nullable = false)public integer getrolandmenuid()return 齐墩果酸 menupublic void SetRoleAndMenuid( 整 数 RoleAndMenuid) this . RoleAndMenuid = Rol
12、eAndMenuid; 列(名称= )公共字符串 GetRoleName() ReturnRoleName; publicvoid setRoleName(字符串 RoleName) this . RoleName = RoleName; Column(name =) 公 共 字 符 串GetWebMenuMe() ReturnWebMenuMe;的版权属于-QQW。空权限管理 -由小倩 (非商业用途 )public void SetWebMenuMe( 字 符 串 WebMenuMe) this . WebMenuMe = WebMenuMe;Column(name = ) 公 共 字 符
13、串 GetMenuItemarray() returnMenuItemarray; public void SetMenuitemArray( 字 符 串 菜 单 菜 单 菜 单 数 组) this.menuItemArray = 菜单菜单数组; 列(名称= )公共整数 GetMenuLevel() returnMenuLevel ;public void SetMenuLevel( 整数 MenuLevel) this . MenuLevel = MenuLevel;3, UserRole(角色类)package cn . qi Wei . bean;导入 javax . persisten
14、ee . column 导入 javax . persistenee . entityimport javax . persiste nee . gen erated VaLue 导入 javax . persiste nee . GenerationType 导入 javax . persistenee . Id 导入 javax . persistenee . tableimport javax . persistenee . UniqueConstraint Entity Table(name =, eatalog =, UniqueConstraints = UniqueConstra
15、int(ColumnAmes = )publie elass UserRole private Integer RolelD;私有字符串角色名;私有字符串角色信息;的版权属于-QQW。空权限管理 -由小倩 (非商业用途 ) Id Gen erated VaLue策略二生成类型。IDENTIT Y) Column(name =, unique二true, nullable = false)公共整数GetRoleID() ReturnRoleID ; publicvoid setRoleld(整数 RoleID) this . RoleID = RoleID ; 列(名称= )公共字符串 GetR
16、oleName() ReturnRoleName; publicvoid setRoleName(字 符串 RoleName) this . RoleName =RoleName; 列(名称= )公共字符串 GetRoleInfo() ReturnRoleInfo ; publicvoid setRoleInfo(字符串 RoleInfo) this . RoleInfo = RoleInfo ; 4,WebMenu(菜单功能类)包 cn . qi Wei . bean;导入 javax . persistenee . column 导入 javax . persistenee . entit
17、yimport javax . persiste nee . gen erated VaLue 导入 javax . persiste nee . GenerationType 导入 javax . persistence . Id 导入 javax . persistence . tableimport javax . persistence . UniqueConstraint Entity,UniqueConstraints版权所有 -qqw.null版权管理 -由小秦(非商业用途 )= UniqueConstraints(column names =)公) 共类 WebMenu 私有整
18、数 webMenuId 私有字符串网站菜单菜单; 私有字符串网页菜 单信息;私有字符串 webMenuDiv私有字符串 menuItemIdArray 私有整数根菜单; 私有整数菜单级别; /menu level id generated value(strategy = generation type . identity) column(name = , unique = true,nullable = false)public integer getwebmenuid() returnnwebmenuid;public void SetWebMenUID(整数 WebMenUID) th
19、is . WebMenUID =WebMenUID;Column(name =) 公 共 字 符 串GetWebMenuMe() ReturnWebMenuMe;public void SetWebMenuMe( 字 符 串 WebMenuMe) this . WebMenuMe = WebMenuMe;列(名称= )公共字符串 GetWebMenuInfo() ReturnWebMenuInfo; public void SetWebMenuInfo( 字 符 串 WebMenuInfo) this . WebMenuInfo = WebMenuInfo;列(名称= )公共字符串 GetWe
20、bMenuDiv() returnWebMenuDiv;public void SetWebMenuDiv( 字 符 串 WebMenuDiv) this . WebMenuDiv = WebMenuDiv ; Column(name = ) 公 共 字 符 串 GetMenuItemDarray() ReturnMenuItemDarray ;的版权属于-QQW。空权限管理 -由小倩 (非商业用途 )public void SetMenuiteMidArray( 字符串 MenuiteMidArray) this . MenuiteMidArray = MenuiteMidArray ; C
21、olumn(name = )public Integer GetrootMenu() returnrootMenu ;publicvoid setRootMenu(整数根菜单) this.rootMenu 二根菜单;列(名称 = )公共整数 GetMenuLevel() returnMenuLevel ; public void SetMenuLevel(整数 MenuLevel) this . MenuLevel = MenuLevel;的版权属于-QQW。空权限管理-由小秦(非商业用途 )5, WebSoleSystem数据库6,将项目部署到 tomcat 运行。四个表版权所有 -qqw.
22、null版权管理 -由小秦 (非商业用途 )3) 完成用户登录界面1,在 src/main/webapp/WEB-INF 下创建视图文件夹,并在视图 25 下复制空权限管理 -由小秦 (非商业用途 ) 公共类视图控制器 RequestMapping(value = )响应 公共模型和视图逻辑视图 () 模型和视图 =新模型和视图 ();返回视图; 4,浏览器运行结果版权所有 -qqw.null版权管理-由小秦(非商业用途 )4) 完成后台界面94 返回视图;的版权属于-QQW。空权限管理 -小秦(非商用 )3,在管理文件夹下创建功能模块子界面。例如,我们需要创建的后 台功能模块如下图所示公司业
23、务报表公司业务信息汇总公司业务基本信息员工工作分配部 门人事管理用户基本信息经理工作分配访问权限分配后台主页版权所有 -QQQW . null权限管理-由小秦(非商业用途 )4 在管理文件夹下实现后台功能模块接口访问调用请求4 返回视图; RequestMapping(value = ) ResponseBody公共模型和视图业务报表 ()模型和视图 =新模型和视图 ();返回视图; RequestMapping(value = ) ResponseBody公共模型和视图业务摘要 ()模型和视图 =新模型和视图 ();返回视图; RequestMapping(value = ) Respons
24、eBody 公共模型和视图公司信息视图 ()模型和视图 =新模型和视图 ();返回视图; RequestMapping(value = ) ResponseBody 公共模型和视图角色设置视图 ()模型和视图 =新模型和视图 ();返回视图; RequestMapping(value = ) ResponseBody 公共模型和视图部分用户视图 ()模型和视图 =新模型和视图 ();返回视图; RequestMapping(value = ) ResponseBody 公共模型和视图用户信息视图 ()模型和视图 =新模型和视图 ();的版权属于-QQW。空权限管理 -由小倩 (非商业用途 )返
25、回查看; RequestMapping(value = ) ResponseBody 公共模型和视图用户作业视图 ()模型和视图 =新模型和视图 ();返回视图; RequestMapping(value = ) ResponseBody 公共模型和视图 webMenuView()模型和视图 =新模型和视图 ();返回视图; +5,manage.jspclass = 背景主页class=href= 用户基本信息管理类 = 部门管理 类= 部门人事管理人员工作分配公司业务管理类= 公司业务基本信息公司业务信息汇总公司业务报告权限管理类别= >员工工作分配访问分配版权所有 -qqw.null
26、 199 拥有以下版权属于 -qqqw . null版权管理-由小秦(非商业用途 )5)实施版权管理模块(1)完成员工角色分配 ()A . 以下是 roleSetView 静态界面 空权限管理-由小秦(非商业用途 )B,在业务层和数据层创建相关类1)在数据层创建相关类A1 ,在用户道接口 (继承的基本道接口 )创建相关类a2,在用户道接口(继承的基本道接口)创建相关类A2,用户道接口类(继承的基本道接口类实现用户道接口 )创建相关 类A2 空权限管理 -由小秦(非商用 )B1、用户角色道接口B2、用户角色道接口类C , 类 似 地 实 现 WebMenuDao 、 WebMenuDaoImpl
27、 、 RoleAndMenuDaoImpl2)业务层|组成空 权限管理 -由小秦(非商业用途 )B, RoleAndMenuBiziimplC,实现提交按钮1)页面添加按钮单击方法FunctionUserRoleCreate()Varabj = GetForm JSON($();varjsonStr = JSON.stringify(abj,null ,); console . log(JSonStr;),缓存 :true,的版权属于-QQW。空权限管理 -小秦(非商用 )数据:jso nstr,数据类型,成功:函数(数据)if( 数据作业创建成功 );否则警报 作业已经存在并已更新 ); ,
28、错误:fun cti on()alert( error,请与您的管理员联系! ); ) ; /JQuery.ajax End/将json序列化对象转换为json序列化字符串函数 GetFormJSON俵单) VARO = ;vara = $(表单)。SerializeArray() ; $。每个(a,函数()if(o这个.name!=未定义)如果(!哦,。推送)othis . name=othis . name;。推送(this . value | |; 其他 )othis . name= this . value | |; ) ; returno; 2)在控制层 (控制器
29、)中创建一个新的类,以实现 createRoleByForm 请求 request mapping(value =) responsebodypublic Map CreateRoleByForm( request body user role user role)版权所有 -qqw.null版权管理-由小秦(返回映射二roleAndMenuBiz.createRole(用户角色);返回返回映射;3)在 RoleAndMenuBiz 中添加创建角色抽象方法4) 实现创建角色抽象方法事务性公共映射创建角色 (用户角色用户角色 )映射返回映射 =新哈希表 ();字符串 hql = % u . Ro
30、leName =列表用户角色 =用户角色列表 (hql); if(UserRoleRoles . size()= =0) UserRoleDao . add(UserRole);,);否则userRoleDao.edit用户角色);,);ReturnReturnMap;的版权属于-QQW。空权限管理-由小秦(非商业用途 )5)在数据层 UserRoleDao)中添加 getUserRoleList 方法6) 实现 getUserRoleList 方法 Override公共 ListgetUserRoleList(字符串 hql) returnsuper。员工工作分配功能的实现1)roleSet
31、View.jsp工作表请求后台数据VarPageSize;VarPageNumbe;r /表数据填充方法fun cti on roletable in t(page) page nu mber = page 页面大小=$()。查找 ()。 text() ;的版权属于-QQW。空版权管理 -小倩(非商业用途 )$()。查找()。移除(); ,async :false,cache :false,success:f un cti on( data) con sole . log(data) if(数据!二 nu II) $。每个(数据、函数 (索引、项 )/返回 JSONif(索引;VarRoleU
32、sers = item . RoleUse;r控制台.Iog(角色用户!未向员工分配更改权限);if(roIeUsers!没有分配给员工的更改权限) $。每个(roleusers,function (I,name)role userdv+= default BTN-xsred-stripajaxify href = usepersonview/ '+item . userid+ ' >;);否则RoleUserDiv = item . RoleUser; 美元()。追加(“ +RoleDiv+ ” +RoleUserDiv+'); ;,错误:fun cti on(
33、)alert( error,请与您的管理员联系! );的版权属于-QQW。空权限管理 -小秦(非商用 ) ; /JQuery . Ajax End 2)WebMenurEcontrolErr 接受请求/获取作业列表 RequestMapping(value = ) ResponseBody, ) 公共列表 GetUserRoleList()System . out . println(); 列表返回列表 =角色和成员列表 ();返回返回列表;的版权属于-QQW。空权限管理-由小秦(非商业用途 )3) 业务层角色和 RoleAndMenuBizImpl 业务流程 Transactional Pu
34、blicListGetUserRoleList() List ReturnRole = NewArrayList() ;字符串 ;列表角色二用户角色列表(hql);对于(int I = 0 ; I映射角色映射二新的哈希映射();用户角色角色二roles . get(l); /添加角色名,role . getrolename();/add id,role . getroleid();字符串 rhql = = ;列表用户 =用户道.获取用户列表 (rhql);if(users.size()!=0) /添加成员名称,用户);” 其 他,未向员工分配更改权限 )”;的版权属于-QQW。空权限管理 -由
35、小倩(非商业用途 )返回角色。添加 (角色映射 );返回返回角色; +4) 数据层添加了相关的方法 userroledao . getuserrolelist(hql;)UserDao .GetUserList(rhql);(流程略)5)效果如下:(3)实现下拉列表员工工作分配功能 1)实现前台代码A,引入插件直接复制到加入js和css链接权限管理-由小秦(非商业用途 )B, Js实现/分配员工职务FunctionSubmitterUserDesignForm()Varabj = GetFormjson($();varjsonStr = JSON.stringify(abj, null, );
36、 console . log(JSonStr;), cache :true, data : jsonStr,success:function(data) console . log(data;)/新部门注册成功后,表单更新roleTabellnit(页码);/关闭注册框/菜单注册框 (0);输入列表 , $(), 2, 1, 0);,错误 :function()alert( error,请与您的管理员联系!); ) ; /JQuery . Ajax end functioninputlist(URL , what _ data, number, indexid, index key) varobj=;/输入框获取后台数据信息 jQuery。 Ajax (,async: false 缓存:false,网址:网址。data:' DataType:success:f un cti on( data) con sole . log(data) if(数据!二 nu II) 版权所有 -qqw.null版权管理 -由小芹 (非商业用途 ) $。每个(数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026湖南长沙人才集团有限公司见习人员招聘1人考试参考试题及答案解析
- 2026年大庆萨尔图区会战街道社区卫生服务中心招聘1人考试参考题库及答案解析
- 2026广西南宁市兴宁区五塘镇中心学校春季学期顶岗教师招聘考试参考试题及答案解析
- 2026青海海南共和县第三寄宿制小学选聘政府临聘人员1人考试备考试题及答案解析
- 2026江西九江市田家炳实验中学临聘教师招聘2人考试参考试题及答案解析
- 2026年1月重庆市綦江区人民政府东林街道办事处招聘公益性岗位人员3人考试备考试题及答案解析
- 2026昌吉州宝石花医院招聘(8人)考试备考题库及答案解析
- 2026山东第一医科大学附属皮肤病医院招聘博士研究生工作人员3人考试参考题库及答案解析
- 2026福建南平市公安局莒口派出所招聘警务辅助人员2人考试参考题库及答案解析
- 2026中陕核工业集团二一四大队有限公司招聘(18人)考试参考试题及答案解析
- 2026年药店培训计划试题及答案
- 2026春招:中国烟草真题及答案
- 急性酒精中毒急救护理2026
- 2021-2022学年天津市滨海新区九年级上学期物理期末试题及答案
- 江苏省苏州市、南京市九校2025-2026学年高三上学期一轮复习学情联合调研数学试题(解析版)
- 2026年中国医学科学院医学实验动物研究所第三批公开招聘工作人员备考题库及答案详解一套
- 2025年幼儿园教师业务考试试题及答案
- 国家开放大学《Python语言基础》形考任务4答案
- (自2026年1月1日起施行)《增值税法实施条例》重点解读
- 2026春小学科学教科版(2024)三年级下册《4.幼蚕在生长》教学设计
- 管道安装协议2025年
评论
0/150
提交评论