设为首页 加入收藏

TOP

Struts 2 拦截器
2014-11-24 12:51:44 来源: 作者: 【 】 浏览:0
Tags:Struts 拦截

1、Struts2实现原理:



当请求到达Struts 2的ServletDispatcher时,Struts 2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表(list),最后一个一个地调用列表中的拦截器,如图所示。


图1 拦截器调用序列图


2、Struts2默认的所有拦截器:



在struts-default.xml中已经配置了以上的拦截器。如果您想要使用上述拦截器,只需要在应用程序struts.xml文件中通过“”将struts-default.xml文件包含进来,并继承其中的struts-default包(package),最后在定义Action时,使用“”引用拦截器或拦截器栈(interceptor stack)。一旦您继承了struts-default包(package),所有Action都会调用拦截器栈 ——defaultStack。当然,在Action配置中加入“”可以覆盖defaultStack。


3、Struts2为我们提供了一个Interceptor接口,该接口源代码如下:



1) init():在拦截器执行之前调用,主要用于初始化系统资源。


2) destroty():init()对应,用于拦截器执行之后销毁资源。


3) intercept():拦截器的核心方法,实现具体的拦截操作。与action一样,该方法也返回一个字符串作为逻辑视图。如果拦截器成功调用了action,则返回该actionexecute()方法返回的逻辑视图,反之,则返回一个自定义的逻辑视图。


Struts2还为我们提供了一个AbstractInterceptor类,该类的init()destroy()都是空实现。我们开发自己的拦截器只需要继承这个类就行了。


首先自定义一个拦截器类,该类可以实现Interceptor接口或继承AbstractInterceptor类:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Struts 2中的表达式语言 下一篇Struts 2体系原理图

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言中如何将结构体 (2025-12-24 22:20:09)
·纯C语言结构体成员变 (2025-12-24 22:20:06)
·C语言中,指针函数和 (2025-12-24 22:20:03)
·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)