Struts2拦截器

1.Struts2拦截器

1.1 基于类范围的连接器的自定义和使用

  • Struts2连接器的体系结构
  • Struts2内建连接器
  • 自定义基于类范围的连接器
  • 案例:通过自定义连接器实现日志记录

1.2 任务实现思路

如何自定义和使用拦截器?

  • 编写拦截器组件类,该类可以实现Intereptor接口,或者继承AbstractInterceptor,MethodFilterInteceptor
  • 声明自定义的拦截器组件类
<interceptors>
			<interceptor name="show" class="cn.zhengbin.interceptor.MyInterceptor" />
interceptors>
  • 开启动态方法调用
<action name="message" class="cn.zhengbin.action.ValidateLoginAction" method="message">
			<result name="success">/message.jspresult>
			<interceptor-ref name="show" />
    
			<interceptor-ref name="defaultStack" />
action>

使用自定义的拦截器组件类药注意的事项:

  • 当在< action>元素添加了< interceptor-ref>引用后,框架不会再调用defaultStack拦截器栈,这样会破坏框架的功能
  • 因此,需要将defaultStack显示引用一下
<interceptor-ref name="defaultStack" />

1.2.1 编写拦截器组件类MyInterceptor

package cn.zhengbin.interceptor;

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

public class MyInterceptor extends AbstractInterceptor {
     

	@Override
	public String intercept(ActionInvocation invoke) throws Exception {
     
		System.out.println("页面展示之前");

		String result = invoke.invoke();
		System.out.println("页面展示完成");
		
		System.out.println("页面展示之后");

		return result;
	}

}

1.2.2 声明自定义的拦截器组件类



<struts>
	
	<constant name="struts.enable.DynamicMethodInvocation" value="true" />
	<package name="login" namespace="/" extends="struts-default">
		<interceptors>
			<interceptor name="show" class="cn.zhengbin.interceptor.MyInterceptor" />
		interceptors>
		<action name="fieldValidate_login" class="cn.zhengbin.action.ValidateLoginAction">
			<result name="input">/login.jspresult>
			<result name="success">/main.jspresult>
		action>
		<action name="message" class="cn.zhengbin.action.ValidateLoginAction"
			method="message">
			<result name="success">/message.jspresult>
			<interceptor-ref name="show" />
			
			<interceptor-ref name="defaultStack" />
		action>
	package>
struts>   

1.2.3 编写message.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>



  
    My JSP 'message.jsp' starting page

	
	
	    
	
	
	]
	

  
  
  
    

《观沧海》
曹操
东临碣石,以观沧海
水何澹澹,山岛竦峙。
树木丛生,百草丰茂。
秋风萧瑟,洪波涌起。
日月之行,若出其中。
星汉灿烂,若出其里。
幸甚至哉,歌以咏志。

你可能感兴趣的:(笔记,struts2,java)