`
longge
  • 浏览: 15679 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

AOP in Struts1 (个人经验)

阅读更多
在以前发开的时候,老为权限的分配抓破了头皮。什么接口,抽象,继承等等,能够多态的都想过了,功能是出来了,但还是不很更好的解决权限分配。
后来我研究了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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics