• 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>
  • 相关阅读:
    OLEDB SqlHelper
    .net中数据库事务机制
    C#中的@符号
    C#实现WEB服务器
    Snake.Net
    C#在客戶端和服務端操作Excel文件
    数据库连接字符串大全
    获取cpu序列号,硬盘ID,网卡MAC地址
    Asp.net动态生成html页面(、
    document 文挡对象详解
  • 原文地址:https://www.cnblogs.com/asndxj/p/10668398.html
Copyright © 2020-2023  润新知