zoukankan      html  css  js  c++  java
  • struts自定义拦截器

    1.防止用户没有登录即可访问其他页面

    1.1>从session中判断用户是否登陆 ServletActionContext.getRequest().getSession();以此为依据是否放行

    package com.hdh.bos.interceptor;
    
    import com.hdh.bos.entity.User;
    import com.hdh.bos.utils.BOSUtils;
    import com.opensymphony.xwork2.ActionInvocation;
    import com.opensymphony.xwork2.ActionProxy;
    import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
    /**
     * 自定义的拦截器,实现用户未登录自动跳转到登录页面
     * @author hdh
     *
     */
    public class BOSLoginInterceptor extends MethodFilterInterceptor{
        //拦截方法
        protected String doIntercept(ActionInvocation invocation) throws Exception {
            ActionProxy proxy = invocation.getProxy();
            String actionName = proxy.getActionName();
            String namespace = proxy.getNamespace();
            String url = namespace + actionName;
            System.out.println(url);
            //从session中获取用户对象
            User user = BOSUtils.getLoginUser();
            if(user == null){
                //没有登录,跳转到登录页面
                return "login";
            }
            //放行
            return invocation.invoke();
        }
    }

     

    2.注册自定义拦截器 

    <!--注册自定义拦截器 -->
                <interceptor name="loginInterception"
                    class="com.hdh.bos.interceptor.BOSLoginInterceptor">
                    <!--指定不需要拦截的 -->
                    <param name="excludeMethods">login</param>
                </interceptor>
                
                <!--定义拦截器栈 -->
                <interceptor-stack name="mystack">
                    <interceptor-ref name="loginInterception"></interceptor-ref>
                    <interceptor-ref name="defaultStack"></interceptor-ref>
                </interceptor-stack>
            </interceptors>

    3.设置默认拦截器

    <!-- 设置为默认拦截器 -->
            <default-interceptor-ref name="mystack"></default-interceptor-ref>
  • 相关阅读:
    Django ListView实现分页
    redis-pipeline
    MRO
    进程状态
    ORM基本操作回顾
    协程回顾
    线程的回顾
    multiprocessing- 基于进程的并行性
    Fix Curl client hung issue
    Curl request 'Expect: 100-Continue' Issues and Risks
  • 原文地址:https://www.cnblogs.com/asndxj/p/10668398.html
Copyright © 2011-2022 走看看