zoukankan      html  css  js  c++  java
  • struts拦截器使用

    一:书写拦截器类

    package cn.itcast.myintercepter;
    
    import java.util.Map;
    
    import com.opensymphony.xwork2.ActionContext;
    import com.opensymphony.xwork2.ActionInvocation;
    import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
    
    /**
    * @author 作者
    * @version 创建时间:2018年7月26日 下午2:42:24
    * 类说明:拦截器创建方式
    *     继承:MethodFilterIntercepter方法过滤拦截器
    *    功能:定制拦截器拦截的方法
    *        定制哪些方法需要拦截哪些方法不需要拦截
    */
    public class MyInterceptor extends MethodFilterInterceptor {
    
        @Override
        protected String doIntercept(ActionInvocation invocation) throws Exception {
            //1.获得session
            Map<String, Object> session = ActionContext.getContext().getSession();
            //2.获得登陆标识
            Object object = session.get("user");
            //3.判断登陆标识是否存在
            if(object==null) {
                //说明没有登陆,重定向到登陆页面
                return "toLogin";
            }else {
                //说明登陆=》放行
                return invocation.invoke();
            }        
        }
    
    }
    拦截器类

    二:配置struts文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
    <struts>
        <package name="crm" namespace="/" extends="struts-default">
            <!-- 配置拦截器步骤 -->
            <interceptors>
            <!-- 1.注册拦截器 -->
                <interceptor name="myIntercator" class="cn.itcast.myintercepter.MyInterceptor"></interceptor>
            <!-- 2.注册拦截器栈-->
                <interceptor-stack name="myStack">
                <!-- 自定义拦截器栈 -->
                <interceptor-ref name="myIntercator">
                    <!-- 不需要拦截的方法名 -->
                    <param name="excludeMethods">login</param>
                </interceptor-ref>
                <!-- 引用默认的拦截器栈(20个) -->
                <interceptor-ref name="defaultStack"></interceptor-ref>
                </interceptor-stack>
            </interceptors>
            <!-- 3.指定默认的拦截器栈 -->
            <default-interceptor-ref name="myStack"></default-interceptor-ref>
            <!-- 定义全局结果集 -->
            <global-results>
                <result name="toLogin" type="redirect">/login.jsp</result>
            </global-results>
            <global-exception-mappings>
                <!-- 如果出现java.lang.RuntimeException异常,就将跳转到名为error的结果 -->
                <exception-mapping result="error" exception="java.lang.RuntimeException"></exception-mapping>
            </global-exception-mappings>
                
            <action name="UserAction_*" class="cn.itcast.web.UserAction" method ="{1}">
                <result name="toHome" type="redirect">/index.htm</result>
            </action>
        </package>
    </struts>
    struts配置文件
  • 相关阅读:
    VS2008中应用.NET 4.0中的代码契约
    生日快乐
    Did you know…How to maintain scrollposition after post back? z
    微软正式发布SQL Server 2008
    想要注册一个写日记用的博客(选好了)
    SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY的区别(比较) z
    Microsoft Visual Studio 2010 and the .NET Framework 4.0 CTP下载
    mysql
    如何用iframe代码显示调用网页的指定部分
    文件夹权限
  • 原文地址:https://www.cnblogs.com/chiwang/p/9372396.html
Copyright © 2011-2022 走看看