- 浏览: 885928 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (687)
- java (127)
- servlet (38)
- struts (16)
- spring (22)
- hibernate (40)
- javascript (58)
- jquery (18)
- tomcat (51)
- 设计模式 (6)
- EJB (13)
- jsp (3)
- oracle (29)
- RUP (2)
- ajax (3)
- java内存管理 (4)
- java线程 (12)
- socket (13)
- path (5)
- XML (10)
- swing (2)
- UML (1)
- JBPM (2)
- 开发笔记 (45)
- Note参考 (15)
- JAXB (4)
- Quartz (2)
- 乱码 (2)
- CSS (2)
- Exception (4)
- Tools (7)
- sqlserver (3)
- DWR (7)
- Struts2 (47)
- WebService (2)
- 问题解决收藏 (7)
- JBOSS (7)
- cache (10)
- easyUI (19)
- jQuery Plugin (11)
- FreeMarker (6)
- Eclipse (2)
- Compass (2)
- JPA (1)
- WebLogic (1)
- powerdesigner (1)
- mybatis (1)
最新评论
-
bugyun:
受教了,谢谢
java 正则表达式 过滤html标签 -
xiongxingxing_123:
学习了,感谢了
java 正则表达式 过滤html标签 -
wanmeinange:
那如果无状态的。对同一个任务并发控制怎么做?比如继承Quart ...
quartz中参数misfireThreshold的详解 -
fanjieshanghai:
...
XPath 元素及属性查找 -
tianhandigeng:
还是没明白
quartz中参数misfireThreshold的详解
通过之前的Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解系列文章,我们已经成功将这三种框架整合到了一起,这次大象将在此基础上用一个小实例来说明,怎么利用Struts2的拦截器特性实现登录验证,以及超时后的跳转问题。
大象在这里假设你已经弄清楚了Struts2拦截器的基本概念,可以进入实际运用了。那么我们在之前的基础上只需要做下小小的改变,就可以使用Struts2的拦截器机制实现登录的验证。
修改数据库
在user表中增加password字段,将初始密码都设为123,因为是示例所以采用明码,实际开发中,当然不能这样做,需要进行加密处理。再将name改为username,其实name字段可以不用改名,我这样做是为了命名规范,请注意,如果字段改为username,User类中的对应属性也要进行相应变化(如果你加注释写法可以不用改),还有Test与TestHibernateDao中的getName()都要改为getUsername()。
修改index.jsp
将hello.action改为login!welcome.action
增加登录类
在web包下创建LoginAction类,在其中添加welcome与login方法,前者为index.jsp的跳转方法,它将转向到login.jsp页面。而后者则用来处理登录事件,如果成功将进入到主页面,失败则返回到登录页面。最后面有源码下载,这里省略。
增加拦截器
要实现登录拦截的功能,最关键的就是要实现拦截类了,在common包下面再增加一个interceptor包,创建AuthorityInterceptor类,并继承MethodFilterInterceptor,为什么继承它呢?因为它是对方法进行拦截,而在这个应用中,我们是对绝大部分的方法进行拦截,而对个别例外的方法排除。
从session中取得当前登录用户,如果存在,就继续执行后面的拦截器;否则,就跳转到登录页面。所以这样实现了代码后,还要在struts.xml中进行相应的设置。
增加拦截器配置
做好这一步之后,那么登录验证拦截器将会对除了welcome与login之外的所有方法进行拦截了。另外我想说下,拦截器的实现还有一种注解的方式,它不需要实现拦截器类,只需要指定一个注解类型和一个拦截方法就可以了,具体的请自己去查相关资料。这里我没采取注解方式是因为它只能应用到方法级别,不能进行代码复用,如果有多个Action都需要执行拦截操作,那么就得把同样的注解方法复制到不同的Action中,这无疑是很糟糕的。而使用拦截器类就简单多了,只需要在配置文件中指定它,并引用它,就可以在任意的Action中生效,也没有侵入式代码,这就是常说的AOP切面,struts2的拦截器就是AOP的一个具体实现。
增加全局转向配置
还记得拦截器里面的return Action.LOGIN 这句吧,当程序执行完这一行后,就会到struts.xml文件中去找name为login全局转向配置,因此这里我设置为一个jsp页面,而没有定义成/login!welcome.action就是因为如果按这样做了,那么转向后,登录页面将显示在iframe框架中,这肯定不是我们希望看到的。解决这个问题,网上有很多方法,我查了一下,再结合实际,其实没那么复杂,一句话就可以搞定。如果使用frameset这种做法也有效,大象同样测试过,只不过例子中的代码没有这样写而已。
增加jump.jsp
增加login.jsp
登录页面,输入用户名与密码,因为是例子,所以我没加验证码,在正式开发中应该加上。
增加login-index.jsp
这是登录成功后转向的页面,在这里,我用iframe框架来显示内容。
到这里,所有工作都已经完成,已经可以登录登出了,并且拦截器也可以正常工作,超时登出也没问题,大家下载例子运行看看吧!
源码下载: ssh2-interceptor
本文为菠萝大象原创,如要转载请注明出处。http://bolo.blogjava.net/
发表评论
-
ognl表达式
2011-07-07 00:36 1292OGNL是Object Graphic Navigation ... -
在Struts 2_0中实现表单数据校验
2011-07-07 00:02 1137转换与校验(Conversion & Validati ... -
简单的struts2输入校验框架
2011-05-13 23:43 10831.输入页面login.jsp: <%@ page ... -
struts2在学习(十二)--表单验证的两种方式
2011-05-13 23:13 957第四个示例:注解方式校验器---用户注册页面user2_reg ... -
struts2在学习(十一)--表单验证的两种方式
2011-05-13 23:09 902第二个示例:XML配置式校验器---登录和注册页面user_l ... -
struts2在学习(十)--表单验证的两种方式
2011-05-13 22:56 11561. Struts2中的输入校验2. 编码方式校验 1) A ... -
struts2采用convention-plugin实现零配置
2011-05-13 21:58 1111最近开始关注struts2的新特性,从这个版本开始,Strut ... -
通过ActionContext类访问Servlet对象
2011-04-01 21:40 1914ActionContext类位于com.opensympho ... -
webwork 之销毁session
2011-04-01 17:35 1760销毁的意思?不是清空 ... -
Struts2 Convention Plugin(三)
2011-03-18 01:26 1196Annotation 参考Convention使用某些注解语句 ... -
Struts2 Convention Plugin(二)
2011-03-18 01:25 1147Results and result codesStruts ... -
Struts2 Convention Plugin(一)
2011-03-18 01:25 1094Introduction从struts2.1版本开始,Conv ... -
struts2页面中的标签调用类的方法
2011-03-15 16:33 1612<s:set name="str" ... -
Apache Struts 2.2.1 GA版发布
2011-03-14 17:14 1334昨日,Apache软件基金会发布了Struts 2.2.1 G ... -
spring2 +hibernate 3 + struts 配置
2011-03-14 15:15 12081. web.xml 1. <?xml versi ... -
Struts2 中action之间的跳转
2011-03-14 12:32 1250转载于http://zhou568xiao.iteye.com ... -
Struts2 的Result Type
2011-03-13 16:35 1041http://www.blogjava.net/duanzhi ... -
struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
2011-03-13 16:32 1619dispatcher 为默认跳转类型,用于返回一个视图资源(如 ... -
struts2防止重复提交
2011-03-10 23:07 1289struts2的防止重复提交 也使用到了 token (令牌机 ... -
Struts2 数据输入校验(1) —— 函数验证
2011-02-20 20:47 906用struts2标签库来实现上述目的的基本原理: 错误消息分为 ...
相关推荐
SSH2 框架中的 Struts2 拦截器功能允许开发者在特定操作执行前或执行后进行自定义处理,例如登录验证、权限检查等。在本文中,我们将探讨如何使用 Struts2 的拦截器来实现登录验证功能。 首先,我们需要了解 Struts...
1. **Struts2**:Struts2是一个基于MVC设计模式的Web应用框架,它通过拦截器模型来处理用户的请求。在图片上传的场景中,Struts2提供Action类来接收用户上传的图片文件,同时可以通过配置Struts2的配置文件(struts....
在Struts2中,拦截器是实现业务逻辑增强的一种方式,它们在Action执行前后执行,可以实现日志记录、权限验证、性能监控等功能。要添加拦截器,你需要在struts.xml配置文件中定义拦截器栈,并关联到特定的Action或者...
【基于SSH框架的网上电器商场】是一个典型的Java Web项目,SSH是Struts2、Spring和Hibernate三个开源框架的缩写,它们共同构建了一个强大的MVC(Model-View-Controller)架构,用于开发复杂的Web应用程序。...
SSH2框架,全称为Spring、Struts2和Hibernate2的集成框架,是Java Web开发中常用的MVC(Model-View-Controller)架构模式的一种实现。这个"简单ssh2框架程序"是一个基础的Web工程,主要涵盖了用户登录、注册和登出这...
在这个项目中,开发者通过SSH框架实现了基本的数据操作(增删改查)、分页功能、非法登录拦截以及用户注册和登录验证。 1. **SSH框架详解** - **Struts2**:作为前端控制器,处理HTTP请求,负责视图和控制器之间的...
此外,Struts2还提供了拦截器(Interceptor)机制,允许在Action执行前后插入自定义逻辑,如日志记录、权限验证等。 **Spring** 是一个全面的Java应用框架,核心特性包括依赖注入(DI)和面向切面编程(AOP)。在...
【基于SSH2的论坛管理系统的设计与实现】 SSH2(Struts2、Spring、Hibernate)是一个流行的Java开发框架组合,常用于构建企业级Web应用程序,包括论坛管理系统。在本设计中,我们将深入探讨如何利用SSH2框架来设计...
Struts2具有强大的拦截器(Interceptor)机制,可以实现请求的预处理和后处理,如权限验证、性能统计等。此外,Struts2还提供了丰富的插件系统,便于扩展和定制。 **Hibernate2框架** Hibernate2是Java领域的一个...
Struts2框架提供了灵活的动作映射、拦截器机制和强大的国际化支持,能够方便地进行页面跳转和数据验证。 Hibernate是一个对象关系映射(ORM)框架,它消除了Java应用程序与SQL数据库之间的直接交互,将数据库操作...
这些验证逻辑可以在Struts2的拦截器或Spring的Validator中实现。 3. 安全性:考虑到登录注册涉及用户的敏感信息,系统应具备一定的安全措施。例如,密码通常会被加密存储,防止明文泄露;同时,可以使用Spring ...
Struts2自定义拦截器的配置是Struts2框架中一个非常重要的功能,它允许开发者在Action执行前后插入自定义的逻辑,以实现如权限验证、日志记录、性能监控等多种需求。以下是对标题和描述中涉及的知识点的详细说明: ...
6. **拦截器**:Struts2的拦截器可以用来实现如权限验证、日志记录等功能,它们在Action执行前后进行处理。 7. **异常处理**:SSH框架通常会有统一的全局异常处理机制,对可能出现的异常进行捕获和处理。 8. **...
它的核心是基于拦截器的架构,使得开发者可以通过自定义拦截器来扩展功能,如处理异常、数据验证等。 SSH中的Spring框架则是Java企业级应用的核心组件,它提供了一种声明式事务管理方式,可以简化事务处理。Spring...
用户登录验证通常由Spring Security或Struts2的拦截器完成,保证只有合法用户才能访问通讯录数据。权限控制则可以防止未经授权的用户进行敏感操作,如删除联系人。分页显示则可能使用了Struts2的分页插件或者自定义...
此外,Struts2还有丰富的拦截器(Interceptor)机制,可以进行权限验证、日志记录等操作,增强了系统的可扩展性。 其次,Spring框架是Java企业级应用的核心框架,它提供了一个全面的编程和配置模型,使得开发高质量...
SSH框架,全称为Spring、Struts2和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了模型-视图-控制器(MVC)架构模式,数据库持久化,以及强大的前端展示能力,使得开发者能高效地构建...
SSH2框架,全称为Struts2、Spring3和Hibernate4的集成,是Java Web开发中的一个经典组合。这个框架集合了MVC(Model-View-Controller)架构模式的Struts2,依赖注入和面向切面编程的Spring,以及对象关系映射的...
Struts2是Struts1的升级版,它弥补了Struts1的一些不足,提供了更强大的Action、拦截器和结果类型等特性。Struts2的核心是Action,每个Action对应一个业务逻辑。拦截器用于在Action执行前后添加额外的功能,如日志...
它通过Action类和配置文件定义了URL与控制器的映射关系,提供了一套强大的拦截器(Interceptor)机制,可以方便地实现数据验证、权限控制等功能。在本项目中,Struts2将用户的购物请求转发给Spring管理的业务层组件...