• SSH实现登陆拦截器


    /**
     * 登录验证拦截器
     *
     */
    @SuppressWarnings("serial")
    public class LoginInteceptor implements Interceptor {
    
        @Override
        public void destroy() {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void init() {
            // TODO Auto-generated method stub
    
        }
    
        /**每次访问Action类之前,先执行intercept方法*/
        @Override
        public String intercept(ActionInvocation invocation) throws Exception {
            //获取当前访问Action的URL
            String actionName = invocation.getProxy().getActionName();
            //如果当前访问Action的URL是"loginAction_login"(根据自己写的来定)表示此时还没有Sesion,需要放行
            if(!"loginAction_login".equals(actionName)){
                //从Session中获取当前用户对象
                Employee employee = SessionContext.get();
                //如果Session不存在,跳转到登录页面
                if(employee==null){
                    return "login";//这个login已经在struts.xml的全局结果视图中配置了
                }
            }
            //放行,访问Action类中方法
            return invocation.invoke();
            
        }
    
    }

    struts.xml中相关配置:

    <!-- 拦截器配置 -->
            <interceptors>
                <!-- 定义了一个用于拦截器登录的拦截器 -->
                <interceptor name="loginInterceptor" class="cn.itcast.ssh.utils.LoginInteceptor"></interceptor>
                <!-- 定义一个拦截器栈 -->
                <interceptor-stack name="systemStack">
                    <interceptor-ref name="defaultStack" />
                    <interceptor-ref name="loginInterceptor" />
                </interceptor-stack>
            </interceptors>
        
              <!-- 定义系统默认拦截器 全局 -->
            <default-interceptor-ref name="systemStack" /> 
            <!-- 全局结果视图 -->
            <global-results>
                <result name="login" type="redirect">
                    login.jsp
                </result>
            </global-results>

    就这样拦截器就实现了

  • 相关阅读:
    git使用小结
    关于vtordisp知多少?
    虚函数与虚继承寻踪
    最简git Server配置
    StarUML序
    CacheHelper对缓存的控制
    Web Service的一些经验和技巧总结
    月份信息二维坐标图绘制(绘制箭头算法)续
    dynamic与xml的相互转换
    如何将XML与OBJECT进行相互转换(泛型以及通用方法)
  • 原文地址:https://www.cnblogs.com/ITDreamer/p/9860354.html
Copyright © 2020-2023  润新知