1、struts2实现用户登录的简单权限控制 struts2实现登录用户的简单的权限设置 声明:由于代码过多,之摘下了添加用户权限和用户登录后所显示各自各有那些权限一:所需的数据库表和sql语句html view plaincopyprint?1. -创建权限表 2. create table system.purview 3. ( 4. pvalue number(3)primary key, 5. pname varchar2(20), 6. pmodule varchar2(20) 7. ); 8. 9. insert into system.purview values(1,添加,新闻);
2、 10. insert into system.purview values(2,修改,新闻); 11. insert into system.purview values(3,删除,新闻); 12. insert into system.purview values(4,查询,新闻); 13. 14. insert into system.purview values(5,添加,公告); 15. insert into system.purview values(6,修改,公告); 16. insert into system.purview values(7,删除,公告); 17. ins
3、ert into system.purview values(8,查询,公告); 18. 19. 20. -创建角色表 21. create table system.roler 22. ( 23. id varchar2(20)primary key, 24. rid varchar2(20), 25. rname varchar2(20) 26. ); 27. 28. create sequence system.roler_sequence 29. start with 1 30. increment by 1 31. nomaxvalue 32. cache 20; 33. 34. c
4、reate trigger system.roler_trigger 35. before insert 36. on system.roler 37. for each row 38. when(new.id is null) 39. begin 40. select system.roler_sequence.nextval into:new.id from dual; 41. end; -创建权限表create table system.purview(pvalue number(3)primary key,pname varchar2(20),pmodule varchar2(20);
5、insert into system.purview values(1,添加,新闻);insert into system.purview values(2,修改,新闻);insert into system.purview values(3,删除,新闻);insert into system.purview values(4,查询,新闻);insert into system.purview values(5,添加,公告);insert into system.purview values(6,修改,公告);insert into system.purview values(7,删除,公告)
6、;insert into system.purview values(8,查询,公告);-创建角色表create table system.roler(id varchar2(20)primary key,rid varchar2(20),rname varchar2(20);create sequence system.roler_sequencestart with 1increment by 1nomaxvaluecache 20;create trigger system.roler_triggerbefore inserton system.rolerfor each rowwhen
7、(new.id is null)beginselect system.roler_sequence.nextval into:new.id from dual;end;1)roler表2)purview表二:添加权限1)添加角色jsphtml view plaincopyprint?1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 角色名 15. 权限 16. 17. 新闻 18. 19. 20. 21. 22. 23. $pur.pname 24. 25. 26. 27. 28. 29. 30. 31. 32. 公告 33. 34. 35. 36.
8、 37. 38. $pur.pname 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 角色名权限 新闻$pur.pname 公告$pur.pname 2)添加角色actionhtml view plaincopyprint?1. public String insertDo() 2. /获得角色名称和权限值 3. int p=roler.getPurview(); 4. /调用service层 5. rolerService=new InsertRolerService(); 6. int flag= rolerService.
9、insert(roler); 7. return SUCCESS; 8. public String insertDo() /获得角色名称和权限值 int p=roler.getPurview(); /调用service层 rolerService=new InsertRolerService(); int flag= rolerService.insert(roler); return SUCCESS; 3)添加角色servicehtml view plaincopyprint?1. public int insert(InsertRolerBean roler) 2. 3. /开始连接数据
10、库 4. dbcon=new DBConnection(); 5. sta=dbcon.getSta(); 6. /取出所有选 中的权限值,生成最终的权限值 7. long sum=0; 8. for(int i=0;iroler.getPurview().length;i+) 9. 10. sum+=Math.pow(2, roler.getPurview()i);/getPurview是事先声明好的get和set方法,此数组用来接收前台所选的权限,Math.pow此发放为权限算法 11. 12. sql=insert into roler(rid,rname) values(+sum+,+
11、roler.getRname()+); 13. 14. try 15. flag=sta.executeUpdate(sql); 16. 17. catch (SQLException e) 18. / TODO Auto-generated catch block 19. e.printStackTrace(); 20. 21. return flag; 22. public int insert(InsertRolerBean roler) /开始连接数据库 dbcon=new DBConnection(); sta=dbcon.getSta(); /取出所有选 中的权限值,生成最终的权限
12、值 long sum=0; for(int i=0;iroler.getPurview().length;i+) sum+=Math.pow(2, roler.getPurview()i);/getPurview是事先声明好的get和set方法,此数组用来接收前台所选的权限,Math.pow此发放为权限算法 sql=insert into roler(rid,rname) values(+sum+,+roler.getRname()+); try flag=sta.executeUpdate(sql); catch (SQLException e) / TODO Auto-generated
13、catch block e.printStackTrace(); return flag; 三:根据用户查看此用户所具有的权限1)查看用户所具有的权限页面html view plaincopyprint?1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 用户名: 14. 15. 16. 17. 18. 用户名: 2)查询用户所具有的权限actionhtml view plaincopyprint?1. public String getByName() 2. String name=roler.getRname(); 3. /System.out.print
14、ln(name-+name); 4. purviewService=new RolerService(); 5. roler=purviewService.getByRname(name); 6. long rid=roler.getRid(); 7. System.out.println(rid-+rid); 8. 9. 10. purviewList=purviewService.getAll(); 11. 12. lis=purviewService.getRoler(purviewList,rid); 13. 14. 15. lis=purviewService.getQX(lis);
15、 16. 17. return success; 18. public String getByName() String name=roler.getRname(); /System.out.println(name-+name); purviewService=new RolerService(); roler=purviewService.getByRname(name); long rid=roler.getRid(); System.out.println(rid-+rid); purviewList=purviewService.getAll(); lis=purviewServi
16、ce.getRoler(purviewList,rid); lis=purviewService.getQX(lis); return success; 3)查询用户所具有的权限servicea).getByRname方法,用来根据所登用户的名称得到rid字段html view plaincopyprint?1. public InsertRolerBean getByRname(String rname) 2. dbcon=new DBConnection(); 3. sta=dbcon.getSta(); 4. 5. sql=select id,rid,rname from roler t
17、 where t.rname=+rname+; 6. 7. try 8. rs=sta.executeQuery(sql); 9. while(rs.next() 10. rb=new InsertRolerBean(); 11. rb.setId(rs.getInt(id); 12. rb.setRid(rs.getLong(rid); 13. rb.setRname(rs.getString(rname); 14. 15. 16. 17. catch (SQLException e) 18. / TODO Auto-generated catch block 19. e.printStac
18、kTrace(); 20. 21. 22. return rb; 23. 24. public InsertRolerBean getByRname(String rname) dbcon=new DBConnection(); sta=dbcon.getSta(); sql=select id,rid,rname from roler t where t.rname=+rname+; try rs=sta.executeQuery(sql); while(rs.next() rb=new InsertRolerBean(); rb.setId(rs.getInt(id); rb.setRid
19、(rs.getLong(rid); rb.setRname(rs.getString(rname); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return rb; b).getAll()方法用来得到所有权限名称html view plaincopyprint?1. public List getAll() 2. purviewList=new ArrayList(); 3. /开始连接数据库 4. dbcon=new DBConnection(); 5. sta=dbcon.ge
20、tSta(); 6. sql=select pvalue,pname,pmodule from purview; 7. 8. try 9. rs=sta.executeQuery(sql); 10. /循环打包 11. while(rs.next() 12. RolerBean pur=new RolerBean(); 13. pur.setPvalue(rs.getInt(pvalue); 14. pur.setPname(rs.getString(pname); 15. pur.setPmodule(rs.getString(pmodule); 16. purviewList.add(pur); 17. 18. catch (SQLException e) 19. / TODO Auto-generated catch block 20. e.printStackTrace(); 21. finally 22. dbcon.close(); 23. 24. 25. return purviewList; 26. public List getAll() purviewList=new ArrayList(); /开始连接数据库 dbcon=new DBConnection();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1