信息系统软件设计:第3章 Struts2.0-拦截器.pptVIP

信息系统软件设计:第3章 Struts2.0-拦截器.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.4.4 自定义拦截器 自定义的拦截器 所谓自定义的拦截器,就是由我们自己定义并实现的拦截器,而不是由Struts2定义好的拦截器。 在Struts2中编写拦截类,有如下二种方式: 实现Interceptor此接口 继承AbstractInterceptor类(一般会选择此种方式) 3.4.4 自定义拦截器 Interceptor此接口 在Struts2里面,要实现自定义的拦截器是非常简单的,只要写一个实现Interceptor接口的类就可以了。所有的拦截器都要实现erceptor.Interceptor接口,这个接口中定义如下: public interface Interceptor extends Serializable { void destroy(); void init(); String intercept(ActionInvocation invocation) throws Exception; } 方法的基本说明如下: init方法就类似于构造方法,用于初始化一些相关资源 destory方法类似于析构方法,用于释放资源 intercept方法,就是拦截器执行的处理方法,我们要实现的功能主要就写在这个方法里面。 3.4.4 自定义拦截器 截拦器是一个继承自AbstractInterceptor抽象类或实现Interceptor接口的类,可以重写的方法: public void init():执行初始化动作 public void destroy():执行销毁动作 String intercept(ActionInvocation invocation):执行截拦动作 参数invocation:包含了Action的引用, invocation.invoke()方法用于将控制权转给下一个截拦器或者调用Action的execute()方法. 返回值为逻辑视图 AbstractInterceptor为init和destroy方法提供了默认实现. 3.4.4 自定义拦截器 编写拦截器类 无论选择哪种方式创建拦截器,都需要对下述三个方法进行override。三个方法如下: void init(); 此方法在拦截器实例创建之后,intercept()方法被调用之前调用,用于初始化拦截器所需要资源。 void destroy(); 该方法在拦截器实例清除之前调用,用于释放在init()方法中分配的资源。该方法只执行一次。 String intercept(ActionInvocation invocation) throws Exception; 该方法在Action执行之前被调用,拦截器为Action提供的附加功能在该方 法中实现。利用invocation参数,可以获取action执行的状态。在intercept()方法中,如果要继续执行后续部分,可以调用invocation.invoke()。 对于intercept方法,再说明几点: (1)在intercept方法中写“invocation.invoke();”,这句话的意思是继续运行拦截器后续的处理,如果这个拦截器后面还有拦截器,那么会继续运行,一直到运行Action,然后执行Result。如果intercept方法中没有写“invocation.invoke();” 就不再继续向后运行了,换句话说,后续的拦截器和Action就不再执行了。而是在这里返回Result字符串,直接去进行Result处理了。 (2)在“invocation.invoke();”这句话之前写的功能,会在Action运行之前执行 3.4.4 自定义拦截器 (3)在“invocation.invoke();”这句话之后写的功能,会在Result运行之后执行 (4)intercept方法的返回值就是最终要返回的Result字符串,这个只是在前面没有执行Result的时候才有效,也就是前面没有“invocation.invoke();”这句话的时候,这个返回值就相当于是最终要返回的Result字符串,然后才执行相应的Result处理。 3.4.4 自定义拦截器——定义拦截器类 public class AroundInterceptor extends AbstractInterceptor { public void init(){System.out.println(“这是一个初始化方法”)} public String intercept(ActionInvocation invocation) throws Exception { String result=; S

文档评论(0)

学习让人进步 + 关注
实名认证
文档贡献者

活到老,学到老!知识无价!

1亿VIP精品文档

相关文档