zoukankan      html  css  js  c++  java
  • 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>

    就这样拦截器就实现了

  • 相关阅读:
    批量修改横断面图高程范围
    VS添加命令直接创建pkt文件
    Msi中文件替换
    Vs2015 当前不会命中断点,没有与此关联的可执行代码
    纵断面图标注栏数据复制
    批量修改曲面样式中的显示模式
    《AutoCAD Civil 3D .NET二次开发》勘误2
    AutoCAD .NET Wizard下载地址
    样例文件C3DCustomUI无法编译、加载
    angular2 datePipe IOS不兼容问题
  • 原文地址:https://www.cnblogs.com/ITDreamer/p/9860354.html
Copyright © 2011-2022 走看看