Struts2day04测试程序的执行效率,拦截器栈,在Action中覆盖拦截器的属性值

1.在LoginAction.java中,extends ActionSupport

package com.jsu.struts2.action;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {

	@Override
	public String execute() throws Exception {
		//判断用户的执行效率
		for (int i = 0; i < 1000000; i++) {
			
		}
		System.out.println("OK");
		System.out.println(" Action Execute...");
		return SUCCESS;
	}
}

 2.MyInterceptor.java中extends AbstractInterceptor

package com.jsu.struts2.interceptor;

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

public class MyInterceptor extends AbstractInterceptor {
	private String test;//测试属性
	
	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		System.out.println("Interceptor Start..."+test);
		long start = System.currentTimeMillis();
		String path=invocation.invoke();
		System.out.println("Interceptor end....");
		long end = System.currentTimeMillis();
		System.out.println("My 1 END 程序执行时长=" + (end - start));
		return path;
	}

	public String getTest() {
		return test;
	}

	public void setTest(String test) {
		this.test = test;
	}

}
 

 3.在struts.xml中配置

<struts>
	<package name="loginDemo" namespace="/" extends="struts-default">
			<interceptors>
			<interceptor name="MyInterceptor" class="com.jsu.struts2.interceptor.MyInterceptor"></interceptor>
			<!-- 如果有多个拦截器一起调用,配置拦截器栈,拦截器栈也能引用拦截器栈 -->
			<interceptor-stack name="myStack">
				<interceptor-ref name="MyInterceptor">
					<param name="test">拦截器的第一个参数</param>
				</interceptor-ref>
			</interceptor-stack> 
		</interceptors>
		<action name="login" class="com.jsu.struts2.action.LoginAction">
		<interceptor-ref name="myStack">
			<!-- 修改拦截器属性的初始值 -->
			<param name="MyInterceptor.test">修改后的拦截器第一个参数</param>
		</interceptor-ref>
		<interceptor-ref name="defaultStack"></interceptor-ref>
		<result>/index.jsp</result>
		</action>
	</package>
</struts>

 4.页面发送请求http://localhost:8080/struts2_04/login

你可能感兴趣的:(struts2)