在以前发开的时候,老为权限的分配抓破了头皮。什么接口,抽象,继承等等,能够多态的都想过了,功能是出来了,但还是不很更好的解决权限分配。
后来我研究了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
分享到:
相关推荐
《Hibernate/Spring/Structs2 In Action》是一个涵盖了三个核心Java EE框架的综合学习资源,包括Spring、Hibernate和Struts2。这些框架是企业级Java应用程序开发中的关键组件,广泛用于构建可扩展、高效且易于维护的...
《Spring in Action 第二版》是一本全面介绍Spring框架的权威著作,该书不仅是学习Spring使用方法的教程,而且融入了优秀的软件设计思想和设计模式。读者在学习Struts2之后,通过本书可以进一步深入了解Spring作为...
最后,"Struts in Action"是一本经典的书籍,详细讲解了Struts框架的实际应用,提供了丰富的示例和实践指导。通过阅读这本书,开发者可以深入理解Struts的工作原理,以及如何将它与其他技术如Hibernate和Spring集成...
无论是初学者还是经验丰富的开发者,都能从《Spring in Action》第二版中获益良多,它是一本值得推荐的Spring技术权威参考。 总之,《Spring in Action》第二版以其全面的内容、深入的解析和生动的实例,为读者提供...
Spring是一个全面的Java企业级应用开发框架,它提供了IOC(Inversion of Control)和AOP(Aspect-Oriented Programming)的核心特性。`Spring_IOC_.pdf`可能涵盖了如何配置和使用Spring的依赖注入以及面向切面编程...
参考资料涉及的书籍,如《Java编程思想》、《Struts 2+Hibernate+Spring 整合开发技术详解》、《Struts 2.1 权威指南》、《Spring in Action》和《精通 Hibernate》等,均为深入理解SSH框架和J2EE开发的重要资料。...
这类系统在现代企业中扮演着至关重要的角色,帮助企业、组织和个人高效地管理其在线内容,如网页、文档、图片、视频等。下面将详细讨论内容管理系统(CMS)的相关知识点,包括它的核心组成部分、工作原理以及与给定...
Spring框架包括依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)模式等,Spring+in+Action中文版是学习Spring框架的优秀教材。 5. **Struts**:Struts是基于MVC设计模式的Java Web框架,用于构建结构清晰且...
标题“spring自己说说”可能是指一篇关于Spring框架的个人见解或经验分享的文章。由于描述为空,我们只能根据标题和标签来推测文章可能涉及的内容。标签包括“源码”和“工具”,这提示我们这篇文章可能会深入到...
- **增强的AOP支持**:Spring 2.0增强了对面向切面编程的支持,使开发者能够更轻松地实现横切关注点,如日志记录、安全性和事务管理。 - **改进的JMS支持**:此版本提供了更好的Java消息服务(JMS)支持,简化了...
- **面向对象的基础**:熟练掌握面向对象的思想,这对于理解Spring中的依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP)至关重要。 - **设计模式**:虽然不需要学习所有...