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 메세지를 매번 호출하는것이 아니라
연속적으로 연결이 되어 있으면
연동이 되어 마지막에 단 한번만 호출이된다
'Struts2 > 기본(Oracle)' 카테고리의 다른 글
struts2 리절트의 타입의종류, 체인리절트를 활용한 액션 체인 (0) | 2012.06.27 |
---|---|
struts2 커스텀 인터페이스 (0) | 2012.06.27 |
struts2 인터셉터란? (0) | 2012.06.21 |
struts2 도메인 오브젝트 (0) | 2012.06.21 |
struts2 ActionSupport를 사용하여 유효성 검사(Interceptor) (0) | 2012.06.21 |