设为首页 加入收藏

TOP

使用struts1+注解做权限管理
2016-12-14 08:15:12 】 浏览:310
Tags:使用 struts1 注解 权限 管理

实现思想:


1. 写一个接受用户请求的action,继承DispatchAction,然后这个action里面处理各种业务需求,比如说add,delete等等,在各个方法上添加注解,然后在调用这个action的方法时检查有没有注解。


2. 关键是要弄明白是谁调的action?查看有没有注解的代码怎么写?写在哪?


3. 首先要弄明白struts1的流程,用户请求提交给ActionServlet之后,ActionServlet调用requestProcessor这个请求处理器,请求处理器根据你请求的地址,实例化Action对象,然后拿Action各个方法的数据,最后调Action的方法。


4. 现在就断点调试来看看是请求处理器的哪个方法调了action,哪个调了就重写哪个,断点段在ActionServlet的dopost方法上,发现是processActionPerform调用的action,那就准备重写吧!


5. 写一个自己的请求处理器MyRequestProcessor,继承RequestProcessor,然后override他的processActionPerform方法。当然要记得在xml文件中配置controller标签,指定用自己的请求处理器。


6. 在MyRequestProcessor中,首先要判断调用的是action的哪个方法,怎么得到这个方法呢?用反射!


一般action有三种方式:第一,直接继承Action的action,那么方法名就是“execute”;第二,继承DispatchAction的action,那么方法名就是request域中对应的mapping中的parameter;第三,继承MappingDispatchAction的action,那么方法名就是mapping中的parameter,通过反射得到调用action的哪个方法。


7. 然后判断调用的方法上面有没有注解,也就是调用这个方法需不需要权限,不需要,调用超类的processActionPerform;需要的话,检查用户的权限是否contains这个权限,是就放行,不是不放行!


代码就不写了,有了思想就有了代码!


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇JavaScript数组方法reduce解析 下一篇Struts1运用Java注解实现简单的权..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目