`

基于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的一个具体实现。
    增加全局转向配置
   
    还记得拦截器里面的return Action.LOGIN 这句吧,当程序执行完这一行后,就会到struts.xml文件中去找namelogin全局转向配置,因此这里我设置为一个jsp页面,而没有定义成/login!welcome.action就是因为如果按这样做了,那么转向后,登录页面将显示在iframe框架中,这肯定不是我们希望看到的。解决这个问题,网上有很多方法,我查了一下,再结合实际,其实没那么复杂,一句话就可以搞定。如果使用frameset这种做法也有效,大象同样测试过,只不过例子中的代码没有这样写而已。
    增加jump.jsp
   
    增加login.jsp
    登录页面,输入用户名与密码,因为是例子,所以我没加验证码,在正式开发中应该加上。
   
    增加login-index.jsp
    这是登录成功后转向的页面,在这里,我用iframe框架来显示内容。
   
    到这里,所有工作都已经完成,已经可以登录登出了,并且拦截器也可以正常工作,超时登出也没问题,大家下载例子运行看看吧!
    源码下载: ssh2-interceptor
    本文为菠萝大象原创,如要转载请注明出处。http://bolo.blogjava.net/
分享到:
评论
1 楼 senhui19 2011-11-13  
这如果是普通的action之间传用是没问题的,可要是用AJAX试调用时应该如何拦截才会让它跳回至登录页面或弹出提示信息呢?

相关推荐

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

    SSH2 框架中的 Struts2 拦截器功能允许开发者在特定操作执行前或执行后进行自定义处理,例如登录验证、权限检查等。在本文中,我们将探讨如何使用 Struts2 的拦截器来实现登录验证功能。 首先,我们需要了解 Struts...

    ssh框架用struts2 hibernate实现图片的上传源码

    1. **Struts2**:Struts2是一个基于MVC设计模式的Web应用框架,它通过拦截器模型来处理用户的请求。在图片上传的场景中,Struts2提供Action类来接收用户上传的图片文件,同时可以通过配置Struts2的配置文件(struts....

    ssh最新框架搭建,加入拦截器

    在Struts2中,拦截器是实现业务逻辑增强的一种方式,它们在Action执行前后执行,可以实现日志记录、权限验证、性能监控等功能。要添加拦截器,你需要在struts.xml配置文件中定义拦截器栈,并关联到特定的Action或者...

    基于ssh框架的网上电器商场

    【基于SSH框架的网上电器商场】是一个典型的Java Web项目,SSH是Struts2、Spring和Hibernate三个开源框架的缩写,它们共同构建了一个强大的MVC(Model-View-Controller)架构,用于开发复杂的Web应用程序。...

    简单ssh2框架程序

    SSH2框架,全称为Spring、Struts2和Hibernate2的集成框架,是Java Web开发中常用的MVC(Model-View-Controller)架构模式的一种实现。这个"简单ssh2框架程序"是一个基础的Web工程,主要涵盖了用户登录、注册和登出这...

    SSH增删改查+分页+拦截非法登录+注册登录验证

    在这个项目中,开发者通过SSH框架实现了基本的数据操作(增删改查)、分页功能、非法登录拦截以及用户注册和登录验证。 1. **SSH框架详解** - **Struts2**:作为前端控制器,处理HTTP请求,负责视图和控制器之间的...

    SSH2框架struts+spring+Hibernate

    此外,Struts2还提供了拦截器(Interceptor)机制,允许在Action执行前后插入自定义逻辑,如日志记录、权限验证等。 **Spring** 是一个全面的Java应用框架,核心特性包括依赖注入(DI)和面向切面编程(AOP)。在...

    基于SSH2的论坛管理系统的设计与实现

    【基于SSH2的论坛管理系统的设计与实现】 SSH2(Struts2、Spring、Hibernate)是一个流行的Java开发框架组合,常用于构建企业级Web应用程序,包括论坛管理系统。在本设计中,我们将深入探讨如何利用SSH2框架来设计...

    ssh2框架例子

    Struts2具有强大的拦截器(Interceptor)机制,可以实现请求的预处理和后处理,如权限验证、性能统计等。此外,Struts2还提供了丰富的插件系统,便于扩展和定制。 **Hibernate2框架** Hibernate2是Java领域的一个...

    SSH2框架集成

    Struts2框架提供了灵活的动作映射、拦截器机制和强大的国际化支持,能够方便地进行页面跳转和数据验证。 Hibernate是一个对象关系映射(ORM)框架,它消除了Java应用程序与SQL数据库之间的直接交互,将数据库操作...

    基于ssh框架的crm登录注册系统

    这些验证逻辑可以在Struts2的拦截器或Spring的Validator中实现。 3. 安全性:考虑到登录注册涉及用户的敏感信息,系统应具备一定的安全措施。例如,密码通常会被加密存储,防止明文泄露;同时,可以使用Spring ...

    struts2自定义拦截器配置心得

    Struts2自定义拦截器的配置是Struts2框架中一个非常重要的功能,它允许开发者在Action执行前后插入自定义的逻辑,以实现如权限验证、日志记录、性能监控等多种需求。以下是对标题和描述中涉及的知识点的详细说明: ...

    SSH框架搭建源码

    6. **拦截器**:Struts2的拦截器可以用来实现如权限验证、日志记录等功能,它们在Action执行前后进行处理。 7. **异常处理**:SSH框架通常会有统一的全局异常处理机制,对可能出现的异常进行捕获和处理。 8. **...

    ssh2 框架介绍

    Struts 2 的核心架构基于拦截器,这使得业务逻辑与Servlet API完全解耦,增强了代码的可维护性和可测试性。请求在Struts 2框架中的处理流程大致如下: 1. 用户发起HTTP请求到Servlet容器(如Tomcat)。 2. 请求经过...

    ssh Jar 之struts2jar

    它的核心是基于拦截器的架构,使得开发者可以通过自定义拦截器来扩展功能,如处理异常、数据验证等。 SSH中的Spring框架则是Java企业级应用的核心组件,它提供了一种声明式事务管理方式,可以简化事务处理。Spring...

    基于ssh框架的通讯录案例

    用户登录验证通常由Spring Security或Struts2的拦截器完成,保证只有合法用户才能访问通讯录数据。权限控制则可以防止未经授权的用户进行敏感操作,如删除联系人。分页显示则可能使用了Struts2的分页插件或者自定义...

    基于SSH框架的新闻管理系统

    此外,Struts2还有丰富的拦截器(Interceptor)机制,可以进行权限验证、日志记录等操作,增强了系统的可扩展性。 其次,Spring框架是Java企业级应用的核心框架,它提供了一个全面的编程和配置模型,使得开发高质量...

    ssh框架(spring+struts2+hibernate)

    SSH框架,全称为Spring、Struts2和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了模型-视图-控制器(MVC)架构模式,数据库持久化,以及强大的前端展示能力,使得开发者能高效地构建...

    SSH2框架整合登录例子

    SSH2框架,全称为Struts2、Spring3和Hibernate4的集成,是Java Web开发中的一个经典组合。这个框架集合了MVC(Model-View-Controller)架构模式的Struts2,依赖注入和面向切面编程的Spring,以及对象关系映射的...

    基于ssh的购物网站

    Struts2是Struts1的升级版,它弥补了Struts1的一些不足,提供了更强大的Action、拦截器和结果类型等特性。Struts2的核心是Action,每个Action对应一个业务逻辑。拦截器用于在Action执行前后添加额外的功能,如日志...

Global site tag (gtag.js) - Google Analytics