• struts2拦截器-简单实现非法登录验证


    概念:什么是拦截器

          拦截器实现了面向切面的组件,它会影响多个业务对象的公共行为封装到一个个可重用的模块,减少了系统的重复代码,实现高度内聚,确保业务对象的整洁!

         为什么使用拦截器

         拦截器消除了动作组件中的横切任务,为系统处理每一个请求完成的管理任务!

           拦截器的工作原理

        当框架接受到一个请求的时候,它首先必须决定这uri映射到哪一个动作组件,这动作组件的实例就会被加入到一个新创建的Actionlnvocation实例中,然后框架将会验证哪一些拦截器将会被激活触发(xml文件中的配置),以及按照声明的顺序触发。然后将这些拦截器的引用添加到Actionlnvocation中,Actionlnvocation创建并填充了需要的所有对象、信息完毕后,Actionlnvocation则公开了一个invoake()方法,框架然后则调用这个方法并开始继续执行后面的动作!

    1、拦截器 Interceptor的实现方式

      实现 Interceptor 接口,实现 intercept 方法

      继承 AbstractInterceptor类( 推荐 ),重写 intercept 方法

    2、编写拦截器

              

                    从session中获取。。。。。

    3、在struts.xml文件中配置拦截器

      一、单个拦截器name为拦截器的名称,class是编写的拦截器

            <!-- 定义的拦截器 -->
            <interceptors>
            <interceptor name="test" class="com.Interceptor.MyInterceptor"></interceptor>
            </interceptors>

      、拦截器栈

           

            <interceptors>

           <interceptor name="test" class="com.interceptor.MyInterceptor"></interceptor>

            <interceptor-stack name="mystac">

            <interceptor-ref name="test1"></interceptor-ref>

            <interceptor-ref name="test2"></interceptor-ref>

            </interceptor-stack>

            </interceptors>

    4、拦截器在action中的引用

         

                  index.jsp:登录成功之后的页面!

                    <global-results>:全局结果集,非法登录则调回原页面!

      登录测试:

     

  • 相关阅读:
    反应堆模式
    ABP领域层——仓储(Repositories)
    如何使用ASP.NET Web API OData在Oracle中使用Entity Framework 6.x Code-First方式开发 OData V4 Service
    dapper的Dapper-Extensions用法(一)
    VisualStudio 怎么使用Visual Leak Detector
    Visual Studio Code开发TypeScript
    Topshelf创建Windows服务
    ENode框架初始化
    知已者明(转)
    配置静态监听解决ORA-12514错误的案例(转)
  • 原文地址:https://www.cnblogs.com/xxt19970908/p/5267078.html
Copyright © 2020-2023  润新知