`

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

分享到:
评论

相关推荐

    传智168期JavaEE struts2杜宏 day 29~day31笔记.pdf

    标题中的“传智168期JavaEE struts2杜宏 day 29~day31笔记”暗示了文档是一系列关于JavaEE技术栈中的Struts2框架的课程笔记,由杜宏教授,并且特别强调了是从29天到31天的学习内容。JavaEE(Java Platform, ...

    Java Struts框架示例项目

    6. **Value Stack**:Struts2中的数据容器,用于存储Action的属性和Ognl表达式中的对象。 在"struts2_day1"这个压缩包中,我们可能看到的文件结构如下: - `struts2_day1/`: 项目根目录 - `src/main/java/`: 包含...

    简单易懂Struts核心讲解

    在提供的压缩包文件中,"struts_day_01.pdf"可能涵盖了Struts的基本概念和安装配置,"struts_day_02[3].pdf"可能涉及了标签库的使用,"struts_day_05.pdf"可能讲解了验证框架的详细操作,而"struts_day_06.pdf"可能...

    达内培训机密资料_struts2_day01(3)

    在Struts2中,视图通常由JSP页面来实现。可以通过`&lt;s:property&gt;`标签来显示Action中的属性值。 示例JSP页面: ```jsp ; charset=UTF-8" pageEncoding="UTF-8"%&gt; &lt;!DOCTYPE html&gt; &lt;title&gt;Hello World Example ...

    登陆小练习

    4. **参数绑定**:Struts2支持模型驱动,可以自动将表单数据绑定到Action类的属性,如`username`和`password`,这样在`execute`方法中可以直接访问这些值。 5. **验证逻辑**:在`execute`方法中,需要对用户输入的...

Global site tag (gtag.js) - Google Analytics