struts2学习笔记十一(第11讲.Struts2的核心 拦截器续)
Struts2的核心 拦截器续
说明:拦截器的主要作用就是拦截Action,执行顺序就是:拦截器->Action->拦截器->……。
功能:拦截器的基本的配置。
一、在之前的struts2项目src下创建一个包com.test.interceptor,用来存放拦截器,创建一个名称为MyInterceptor.java类,实现Interceptor接口:
package com.test.interceptor;import java.awt.event.InvocationEvent;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.Interceptor;public class MyInterceptor implements Interceptor {public void destroy() {System.out.println("destroy()");}public void init() {System.out.println("init()");}public String intercept(ActionInvocation invocation) throws Exception {System.out.println("intercept");String result = invocation.invoke();return result;}}<?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><constant name="struts.custom.i18n.resources" value="message"></constant><package name="struts2" extends="struts-default"><interceptors><interceptor name="myInterceptor" method="test"><result name="success">/success.jsp</result><result name="input">/register2.jsp</result></action></package></struts>
<interceptors><interceptor name="myInterceptor" name="code">public void init() {System.out.println("init()");System.out.println(hello);}<action name="register" name="code"><package name="struts2" extends="struts-default"><interceptors><interceptor name="myInterceptor" name="code"><package name="struts2" extends="struts-default"><interceptors><interceptor name="myInterceptor" name="code">package com.test.interceptor;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.AbstractInterceptor;public class MyInterceptor2 extends AbstractInterceptor {@Overridepublic String intercept(ActionInvocation invocation) throws Exception {System.out.println("Intercept2");String result = invocation.invoke();return result;}}<package name="struts2" extends="struts-default"><interceptors><interceptor name="myInterceptor" method="test"><result name="success">/success.jsp</result><result name="input">/register2.jsp</result><interceptor-ref name="myInterceptor3"><!-- <param name="includeMethods">test,execute</param> --><param name="excludeMethods">test,execute</param><param name="includeMethods">test</param></interceptor-ref><interceptor-ref name="defaultStack"></interceptor-ref></action></package>
package com.test.interceptor;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;public class MyInterceptor3 extends MethodFilterInterceptor {public void init(){System.out.println("init3");}@Overrideprotected String doIntercept(ActionInvocation invocation) throws Exception {System.out.println("my interceptor3");String result = invocation.invoke();return result;}}<package name="struts2" extends="struts-default"><interceptors><interceptor name="myInterceptor" method="test"><result name="success">/success.jsp</result><result name="input">/register2.jsp</result><interceptor-ref name="myInterceptor3"><!-- <param name="includeMethods">test,execute</param> --><param name="excludeMethods">test,execute</param><param name="includeMethods">test</param></interceptor-ref><interceptor-ref name="defaultStack"></interceptor-ref></action></package>