`
xiaoheliushuiya
  • 浏览: 404513 次
文章分类
社区版块
存档分类
最新评论

基于SSH2框架Struts2拦截器的登录验证实现

 
阅读更多
通过之前的Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解系列文章,我们已经成功将这三种框架整合到了一起,这次大象将在此基础上用一个小实例来说明,怎么利用Struts2的拦截器特性实现登录验证,以及超时后的跳转问题。
大象在这里假设你已经弄清楚了Struts2拦截器的基本概念,可以进入实际运用了。那么我们在之前的基础上只需要做下小小的改变,就可以使用Struts2的拦截器机制实现登录的验证。
修改数据库
user表中增加password字段,将初始密码都设为123,因为是示例所以采用明码,实际开发中,当然不能这样做,需要进行加密处理。再将name改为username,其实name字段可以不用改名,我这样做是为了命名规范,请注意,如果字段改为usernameUser类中的对应属性也要进行相应变化(如果你加注释写法可以不用改),还有TestTestHibernateDao中的getName()都要改为getUsername()
修改index.jsp
hello.action改为login!welcome.action
增加登录类
web包下创建LoginAction类,在其中添加welcomelogin方法,前者为index.jsp的跳转方法,它将转向到login.jsp页面。而后者则用来处理登录事件,如果成功将进入到主页面,失败则返回到登录页面。最后面有源码下载,这里省略。
增加拦截器
要实现登录拦截的功能,最关键的就是要实现拦截类了,在common包下面再增加一个interceptor包,创建AuthorityInterceptor类,并继承MethodFilterInterceptor,为什么继承它呢?因为它是对方法进行拦截,而在这个应用中,我们是对绝大部分的方法进行拦截,而对个别例外的方法排除。
session中取得当前登录用户,如果存在,就继续执行后面的拦截器;否则,就跳转到登录页面。所以这样实现了代码后,还要在struts.xml中进行相应的设置。
增加拦截器配置
做好这一步之后,那么登录验证拦截器将会对除了welcomelogin之外的所有方法进行拦截了。另外我想说下,拦截器的实现还有一种注解的方式,它不需要实现拦截器类,只需要指定一个注解类型和一个拦截方法就可以了,具体的请自己去查相关资料。这里我没采取注解方式是因为它只能应用到方法级别,不能进行代码复用,如果有多个Action都需要执行拦截操作,那么就得把同样的注解方法复制到不同的Action中,这无疑是很糟糕的。而使用拦截器类就简单多了,只需要在配置文件中指定它,并引用它,就可以在任意的Action中生效,也没有侵入式代码,这就是常说的AOP切面,struts2的拦截器就是AOP的一个具体实现。
增加全局转向配置
还记得拦截器里面的returnAction.LOGIN这句吧,当程序执行完这一行后,就会到struts.xml文件中去找namelogin全局转向配置,因此这里我设置为一个jsp页面,而没有定义成/login!welcome.action就是因为如果按这样做了,那么转向后,登录页面将显示在iframe框架中,这肯定不是我们希望看到的。解决这个问题,网上有很多方法,我查了一下,再结合实际,其实没那么复杂,一句话就可以搞定。如果使用frameset这种做法也有效,大象同样测试过,只不过例子中的代码没有这样写而已。
增加jump.jsp
增加login.jsp
登录页面,输入用户名与密码,因为是例子,所以我没加验证码,在正式开发中应该加上。
增加login-index.jsp
这是登录成功后转向的页面,在这里,我用iframe框架来显示内容。
到这里,所有工作都已经完成,已经可以登录登出了,并且拦截器也可以正常工作,超时登出也没问题,大家下载例子运行看看吧!
源码下载:ssh2-interceptor
本文为菠萝大象原创,如要转载请注明出处。http://bolo.blogjava.net/
分享到:
评论

相关推荐

    基于ssh拦截器框架Struts2拦截器的登录验证实现

    基于SSH2框架Struts2拦截器的登录验证实现

    ssh(Struts2.0) 整合小项目,供想自己ssh搭建框架的兄弟借鉴

    使用struts2+spring+hiernate开发的小项目,供想自己搭建环境的兄弟们借鉴,使用了拦截器、过滤器做权限验证和字符集设置。以及spring配置hibernate数据源。数据库方面大家根据hibernate文件和数据源配置自己建立。 ...

    ssh框架实现通讯录

    写的比较简陋,,基于struts1.2+spring2.0+hibernate3.1框架 基本功能: 注册,登陆,添加联系人,按类别查找联系人,删除联系人,登出 表单输入使用validate框架验证,权限管理使用 Filter+action拦截器,...

    Struts2入门教程(全新完整版)

    6.使用拦截器实现权限验证 35 7.拦截器中的注解 37 8.使用PreResultListener实现回调 39 六、使用标签 40 1.基础表单标签 40 2.单选按钮和复选框: 41 3.三种方式实现下拉列表 41 4.二级联动 42 5.其它表单标签 44 6...

    SSH笔记-数据验证、上传下载、避免表单重复提交、自定义拦截器

    SSH笔记-数据验证、上传下载、避免表单重复提交、自定义拦截器

    SSH知识大全

    TP02-Web层框架struts.ppt TP03-Struts2常用标签.ppt TP04-Struts2的Action.ppt TP05-国际化和表单验证.ppt TP06-拦截器.ppt TP07-Hibernate入门.ppt TP08-Hibernate的对象和关系映射.ppt TP09-Hibernate查询.ppt ...

    ssh(Struts2.0) 整合小项目,供想自己搭建框架的哥们借鉴

    使用struts2+spring+hiernate开发的小项目,供想自己搭建环境的兄弟们借鉴,使用了拦截器、过滤器做权限验证和字符集设置。以及spring配置hibernate数据源。数据库方面大家根据hibernate文件和数据源配置自己建立。

    struts2课程笔记

    struts2知识点:处理流程,基本配置,与servlet的API解耦,结果类型,通配符和动态方法的调用,类型转换,文件上传,拦截器,表单验证,国际化,OGNL表达式,UI标签,模型驱动,防止表单重复提交,项目练习知识点:...

    低清版 大型门户网站是这样炼成的.pdf

    6.4.2 spring 2.5集成mvc框架struts 2 411 6.4.3 ssh 2组合框架的基本开发步骤—eportal启程 414 6.5 小结 423 第2篇 实践篇 第7章 ssh 2热身——构建新闻发布系统 427 7.1 门户网站新闻资讯基本分类 427 7.2 ...

    JAVA WEB典型模块与项目实战大全

    3.4 实现spring、struts2.x和hibernate框架集成  3.5 小结  第2篇 典型模块开发  第4章 在线文本编辑器(fckeditor)  4.1 分析fckeditor在线文本编辑器  4.2 fckeditor在线文本编辑器初级应用  4.3 ...

    simplejee-面向j2ee初学者的开源项目

    servlet,html,javascript,css等,以及springmvc+jdbcTemplate和 struts2+hibernate+spring, struts2+ibatis+spring 实现的登陆,CRUD,jfreechart图表显示等例子,用来演示两个mvc框架的基本使用,拦截器,验证,...

    传智播客黑马35期

    day30_struts2拦截器&ognl;表达式 day31_struts2数据验证&常用标签 day32_struts2编码实战 day33_hibernate01 day34_hibernate02 day35_hibernate03 day36_hibernate04 day37_spring01 day38_spring02 day...

    人事OA管理系统

    人事管理OA系统 本案例开发环境: 数据库:Mysql IDE ...2013-08-29 10:19 新完成模块 1、请假管理 a、添加拦截器作为用户登录验证 此案例到此结束!源码中可能有些地方不够细致 没加大数据测试不足之处还请谅解!

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    8.8 拦截器 332 8.9 依赖注入 335 8.9.1 EJB注入 336 8.9.2 资源注入 339 8.10 配置EJB引用 340 8.11 使用计时器进行任务调度 342 8.12 本章小结 345 第9章 消息驱动EJB 346 9.1 JMS和EJB 347 9.1.1 为什么使用MDB ...

    Java学习笔记-个人整理的

    \contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...

    Struts2从入门到精通2017视频教程

    本课程共21讲,课程课件,上课源代码等资料购买后可以直接下载,该课程是在学习完JSP课程后,SSH框架的第一部分,后续还有Hibernate,Spring课程及3大框架的整合

Global site tag (gtag.js) - Google Analytics