struts-ch5.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<package name="ch5" namespace="/ch5" extends="struts-default">
		<interceptors>
			<interceptor name="timer" class="com.ch5.interceptor.TimerInterceptor" />
		</interceptors>
		
		<!-- timer 인터셉터 활용 -->
		<action name="helloWorld" class="com.ch4.action.HelloWorld">
			<interceptor-ref name="timer" />
			<interceptor-ref name="logger" />
			<result name="success">/ch4/hello.jsp</result>
		</action>
	</package>	
</struts>
struts.xml
<include file="struts-ch5.xml" />
TimerInterceptor.java
package com.ch5.interceptor;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class TimerInterceptor extends AbstractInterceptor{

	private static Log log = LogFactory.getLog(TimerInterceptor.class);

	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		//전처리
		long startTime = System.currentTimeMillis();

		//인터셉터 스택의 다음 인터셉터
		//또는 마지막 인터셉터라면 액션 실행
		String result = invocation.invoke();

		//후처리
		long executionTime = System.currentTimeMillis() - startTime;
		log.info("실행 시간 :"+executionTime+"ms");

		return result;
	}

}


기존에 있던 파일을 실행했습니다


여러개의 interceptor가 연결이 되어 있을때

전처리 후처리에 의해

invoke 메세지를 매번 호출하는것이 아니라

연속적으로 연결이 되어 있으면

연동이 되어 마지막에 단 한번만 호출이된다






+ Recent posts