• Struts2之拦截器


    1.第一种方式

    拦截器类书写

    public class UserInterceptor extends AbstractInterceptor  {
    
    	@Override
    	public String intercept(ActionInvocation invocation) throws Exception {
    		
    		System.out.println("我在action之前执行!");
    		
    		System.out.println("拦截时间:"+new Date());
    		
    		//执行的是Action中的方法
    		String result = invocation.invoke();
    		
    		System.out.println("我在action之后执行!");
    		
    		return result;
    		
    	}
    
    }
    

    struts.xml配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
    <struts>
    <constant name="struts.devMode" value="true"></constant>
    <package name="jiangwenwen" namespace="/" extends="struts-default">
    	<interceptors>
    		<interceptor name="userInterceptor" class="cn.jiangwenwen.interceptor.UserInterceptor"></interceptor>
    	</interceptors>
    		
    	<action name="login" class="cn.jiangwenwen.action.UserAction" method="login">
    		<result>/test.jsp</result>
    		<interceptor-ref name="userInterceptor"></interceptor-ref>
    		<!-- 当使用自定义拦截器,默认拦截器将会失效,所以需要添加默认拦截器 -->
    		<interceptor-ref name="defaultStack"></interceptor-ref>	
    	</action>
    </package>
    </struts>
    

    2.第二种方式

    拦截器类书写

    public class UserInterceptor extends MethodFilterInterceptor{
    
    	@Override
    	protected String doIntercept(ActionInvocation invocation) throws Exception {
    		
    		 System.out.println("我在action之前执行!");
    	        
    	        System.out.println("拦截时间:"+new Date());
    	        
    	        //执行的是Action中的方法
    	        String result = invocation.invoke();
    	        
    	        System.out.println("我在action之后执行!");
    	        
    	        return result;
    		
    	}
    
    }
    

    struts.xml配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
    <struts>
    <constant name="struts.devMode" value="true"></constant>
    <package name="jiangwenwen" namespace="/" extends="struts-default">
    	<interceptors>
    		<interceptor name="userInterceptor" class="cn.jiangwenwen.interceptor.UserInterceptor"></interceptor>
    	</interceptors>
    				
    	<action name="login" class="cn.jiangwenwen.action.UserAction" method="login">
    		<result>/test.jsp</result>
    		<interceptor-ref name="userInterceptor">
    			<!-- 代表是否拦截某一个方法 -->
    			<param name="excludeMethods">login</param>
    		</interceptor-ref>
    		<!-- 当使用自定义拦截器,默认拦截器将会失效,所以需要添加默认拦截器 -->
    		<interceptor-ref name="defaultStack"></interceptor-ref>	
    	</action>
    </package>
    </struts>
    
  • 相关阅读:
    python全栈开发从入门到放弃之socket并发编程之协程
    python全栈开发从入门到放弃之socket并发编程多线程GIL
    python全栈开发从入门到放弃之socket并发编程多线程
    python全栈开发从入门到放弃之socket并发编程多进程
    python全栈开发从入门到放弃之socket网络编程基础
    python全栈开发从入门到放弃之异常处理
    python全栈开发从入门到放弃之面向对象反射
    python全栈开发从入门到放弃之面向对象的三大特性
    转:经典ACM算法
    反射在Java Swing中的应用
  • 原文地址:https://www.cnblogs.com/jiangwenwen1/p/9464216.html
Copyright © 2020-2023  润新知