在以前发开的时候,老为权限的分配抓破了头皮。什么接口,抽象,继承等等,能够多态的都想过了,功能是出来了,但还是不很更好的解决权限分配。
后来我研究了Struts2,它的核心是拦截器,也就是AOP面向切面思想。
我一口气把Struts2啃了一遍,思想基本吸收。因为最期项目比较紧张,所以没有什么时间去实践,还没有实践经验,我是不敢把Struts2框架整合到Struts1框架里来的(虽然已经看了Struts2和Struts1的整合这一章,比较简单,三思而后行)。
所以我在想,如何把AOP思想应用到Struts1里面来!
大家会问Spring不就是AOP思想吗?
而且过filter也可以过滤所有请求。。。
这些方法我都试了,灵活性很差,还是达不到我的目的,更比不上Struts2的拦截器!
最后我选择了Struts2的方式,自己给Struts1做一个灵活的拦截器!
拦截器核心:Action (就是用Action来拦截请求,再业务逻辑之前做一些处理和判断)
当前我的需求是:游客(权限一级),用户(权限二级),管理员(权限三级)
思路:
给每个状态设置一个必经之路:游客Action,用户Action,管理员Action
访问一级数据的请求走:游客Action,这条路三个状态都可以经过,所以没有什么拦截和限制。
访问二级数据的请求走:用户Action,发现没有登录(没有二级权限)则返回到登录(升级验证)
访问二级数据的请求走:管理员Action,发现没有这个权限,则拦截请求,将请求转到提示或升级页面
有人会问:那这样每走一步都要判断一次,这不也很消费资料吗?
解决方法,可以把判断的结果放到session里面,只要进了大门,就等刷了通行证,碰到小门,把证示出来就可以通过,不用再回到大门检查,所以多一小个判断过程是值得的!
这样做的好处非常多,感觉功能伸缩自如,维护代价底很多!
http://www.xj-zp.com
分享到:
相关推荐
Struts的AOP Struts的AOP
struts aop日志系统,struts aop日志系统
通过修改相关配置文件位置,和导入的架包,终于修复了一些错误,实现了spring和struts2的完美结合,并使用了spring的aop和日志功能,本人亲自测试过,没问题,方便下载使用
AOP in .NET: Practical Aspect-Oriented Programming 296 pages Publisher: Manning Publications; Pap/Psc edition (June 25, 2013) Language: English ISBN-10: 1617291145 ISBN-13: 978-1617291142 ...
SSI(Struts2 + Spring + IBatis)框架集成。
struts2+spring2.5用AOP记录操作日志,带自定义参数aop的例子
AOP in .NET is a great resource for those interested in learning how aspects can help maintain separation of concerns in a code base. I encourage you to take a look. 这本书由浅入深,有hello world 的...
NULL 博文链接:https://jinnianshilongnian.iteye.com/blog/1889545
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程(也叫面向方面),可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,...
本次上传的是一个SpringAOP + struts2+Hribernate的实际案例。脚本都在工程的src的目录下。
模拟Struts责任链工作流及简单AOP实现
AOP for net framwork
spring aop spring aop spring aop spring aop spring aop spring aop spring aop spring aop spring aop
使用过滤器进行角色控制。使用junit进行EJB3的单元测试。有简单的过程说明。
The applications and reusable code presented in this book show how AOP vastly simplifies enterprise development. This book is for developers who have experience in AOP and AspectJ, but also for those...
1、Struts2 是由webwork2 发展来的而非Struts1,相比Struts1,Struts2 编码规范跟类似与webwork2 2、Struts2 非侵入式设计、Struts1 属于侵入式设计 3、Struts1 与ServletAPI、strutsAPI 紧密耦合;Struts1 则不 4、...
aopalliance-1的jar包跟strus跟spring的整合包
个人整理的关于AOP概念
按照ssh的基本应用逐步添加的jar包,包含AOP切面编程的包。事务的提交建议用AOP去做。