struts 拦截器入门&执行流程
2015-07-24 20:43
686 查看
开发拦截器的步骤:
(1)写一个拦截器类实现Interceptor接口(2)在struts.xml文件中进行配置
案例:测试拦截器和Action的执行流程
HelloAction类
package cn.itcast.interceptor; import com.opensymphony.xwork2.ActionSupport; public class HelloAction extends ActionSupport { public HelloAction(){ System.out.println("1.HelloAction对象创建了..."); } public String execute(){ System.out.println("3.执行了请求处理的业务方法execute()"); return SUCCESS; } }HelloInterceptor类
package cn.itcast.interceptor; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; //自定义拦截器 public class HelloInterceptor implements Interceptor { public HelloInterceptor(){ System.out.println("Interceptor对象创建了..."); } public void destroy() { System.out.println("Interceptor对象销毁了..."); } public void init() { System.out.println("自定义interceptor初始化了.."); } public String intercept(ActionInvocation invocation) throws Exception { System.out.println("2.拦截器业务处理开始"); String result = invocation.invoke();//执行拦截器,返回值类型是执行方法的返回值 System.out.println("4.拦截器业务处理结束"); return result; } }struts.xml配置
<struts> <package name="interceptor" extends="struts-default"> <interceptors> <interceptor name="helloInterceptor" class="cn.itcast.interceptor.HelloInterceptor"></interceptor> <interceptor-stack name="helloStack"> <!-- 应用默认的拦截器 --> <interceptor-ref name="defaultStack"></interceptor-ref> <!-- 引用自定义的拦截器 --> <interceptor-ref name="helloInterceptor"></interceptor-ref> </interceptor-stack> </interceptors> <!-- 执行拦截器 --> <default-interceptor-ref name="helloStack"></default-interceptor-ref> <action name="hello" class="cn.itcast.interceptor.HelloAction" method="execute"> <result name="success">/index.jsp</result> </action> </package> </struts>启动tomcat服务器,可以发现HelloInterceptor类的构造方法和init方法执行了..
控制台打印:
Interceptor对象创建了...
自定义interceptor初始化了..
然后通过浏览器访问HelloAction类可以发现控制台打印顺序
分析结果:
我们可以总结拦截器的执行流程:
相关文章推荐
- java常量使用
- java基本算法之排序
- 使用MyEclipse编写Java程序
- Java内部类的继承
- Java学习笔记一
- JAVA动态性
- java面向对象--06
- 关于java基础--反射机制的详解
- 关于java基础--动态代理
- 从一个“变态”的题看“分析Java源代码”的重要性!
- Java基本语法--运算符
- Java继承类中static成员函数的重写
- Java集合框架学习笔记
- Struts2的配置以及详解
- Spring的配置以及详解
- 用Java进行AES256-ECB-PKCS7Padding加密
- Java转型(向上或向下转型)
- java多线程
- Java Lock Condition
- bj Java初学2015-07-24