Struts2 拦截器的Interceptor接口与AbstractInterceptor抽象类

Struts2 拦截器的Interceptor接口与AbstractInterceptor抽象类在学习Struts2框架的时候,遇到了拦截器,一开始拦截器都应该之间或者间接去实现Interceptor接口的,但是后来看到了AbstractInterceptor这个抽象类。之前学过的JAVA知识有点忘记了,所以特意查了一下关于抽象类和接口之间的关系。我们不想使用Interceptor接口去实现拦截器对象,是因为这个接口中有3个方法,但是我们在实际上我们主要用到的就是只有intercept()这

大家好,又见面了,我是你们的朋友全栈君。

在学习Struts2框架的时候,遇到了拦截器,一开始拦截器都应该之间或者间接去实现Interceptor接口的,但是后来看到了AbstractInterceptor这个抽象类。之前学过的JAVA知识有点忘记了,所以特意查了一下关于抽象类和接口之间的关系。我们不想使用Interceptor接口去实现拦截器对象,是因为这个接口中有3个方法,但是我们在实际上我们主要用到的就是只有intercept()这个方法。我们不想也对其他两个的方法也进行空的实现的话,这样子我们就让拦截器继承AbstractInterceptor这个抽象类。当我们继承这个抽象类的时候,我们就只需重写intercept()这个方法就可以了。

下面就是一些参考别人的资料,关于抽象类与接口的关系,应该改是抽象类它实现了Interceptor接口中的destroy()以及init()方法,然后放拦截器继承这个抽象类的时候,就只需要实现抽象类中没有实现的方法就可以了,这里抽象类没有实现的方法是intercept()。所以在创建拦截器的时候我们就只需要继承这个AbstractInterceptor抽象类就可以了。

抽象类和接口都是Java中用来实现多态的方法,在此主要说明为什么会用抽象类来实现接口,因此对两者之间的异同就不介绍了。

在java一般的用法中,如果要用普通类来实现接口,则必须实现该接口中的所有方法,这样就会导致需要实现多余的方法;

采用抽象类来实现方法,可以实现该接口中的部分方法,而且当其他类继承该抽象类时,只需要实现抽象类中未实现的方法即可。

例:

    抽象类只实现了接口A中的方法a、b,当类C继承类B时,只需要实现B中为实现的接口c即可。

   一般情况下,类C中的方法a、b都是调用父类B的方法a、b

[cpp] 
view plain  
copy

 
在CODE上查看代码片
派生到我的代码片

  1.   /** 
  2.    *接口 
  3.    */  
  4.   interface A{  
  5.          public void a();  
  6.          public void b();  
  7.          public void c();  
  8.   }  
  9.   
  10.  /** 
  11.   *抽象类 
  12.   */      
  13.  abstract class B implements A{  
  14.          public void a(){}  
  15.          public void b(){}  
  16.  }  
  17.    
  18.  /** 
  19.    * 具体实现类 
  20.    */  
  21.   public class C extends B{  
  22.          public void c(){}     
  23. }  
Struts2 拦截器的Interceptor接口与AbstractInterceptor抽象类


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146454.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 网页提示被阻止怎么办,应用程序已被java安全阻止怎么办

    java 网页提示被阻止怎么办,应用程序已被java安全阻止怎么办我们经常会通过浏览器来浏览各种网页,然而有时候会遇到各种提示,例如就有不少具体步骤如下:1、完成JAVA版本更新,然后刷新有问题的网页页面,以排除JAVA版本问题引起JAVA安全阻止;2、从开始菜单中打开控制面板,我们需要进入控制面板来修改相应的配置;3、进入控制面板后,在控制面板中找到JAVA选项,如果找不到可将查看方式切换到大图标或图标即可;4、在JAVA控制面板中打开安全选项,并找到例外站点…

    2022年7月9日
    20
  • smtp搭建_smtp服务器指的是什么服务器

    smtp搭建_smtp服务器指的是什么服务器应用目标:更稳定地发送邮件实现难度:★★☆☆☆我们在发送电子邮件的时候,这封E-mail首先来到ISP提供的邮件服务器,再通过它发送出去。但如果ISP因为网络出现一些问题,则可能会耽搁邮件的发送,甚至可能会造成邮件丢失。如果用自己的机器做SMTP服务器来发邮件,那肯定不会出现上述情况啦!怎么样,心动了吧?下面咱们就一起来架设一个属于自己的SMTP服务器,让你的E-mail发送更安全。一、SMTP服…

    2022年10月3日
    7
  • springboot框架有哪些技术_Springboot常用注解

    springboot框架有哪些技术_Springboot常用注解✍、SpringBoot框架技术总结(一)1、SpringBoot简介我们之前的SSM还是使用起来不够爽。还需要写很多的配置才能进行正常的使用。实现一个功能需要引入很多的依赖,尤其是要自己去维护依赖的版本,特别容易出现依赖冲突等问题。SpringBoot就能很好的解决上述问题。中文文档:https://doc.springcloud.io/spring-boot/index.html1.1、SpringBoot是什么SpringBoot是基于Spring开发的全新框架,相当于对Spri

    2022年8月20日
    9
  • 全面解析傅立叶变换(非常详细)

    全面解析傅立叶变换(非常详细)前言第一部分、DFT第一章、傅立叶变换的由来第二章、实数形式离散傅立叶变换(RealDFT)从头到尾彻底理解傅里叶变换算法、下第三章、复数第四章、复数形式离散傅立叶变换前言:“关于傅立叶变换,无论是书本还是在网上可以很容易找到关于傅立叶变换的描述,但是大都是些故弄玄虚的文章,太过抽象,尽是一些让人看了就望而生畏的公式的罗列,让人很

    2022年10月21日
    5
  • javascript高级试题

    javascript高级试题1 判断为数组类型的 4 种方式 Array isArray typeofinstan 判断对象是否包含特定的自身 非继承 属性 hasOwnProper 3 改变 this 的 3 种方式 他们有什么相同点和不同点 call bind apply 这三个函数的第一个参数都是 this 的指向对象 第二个参数差别就来了 call 的参数是直接放进去的 第二第三第 n 个参数全都用逗号分隔 直接放到后面 obj myFun call db 成都

    2025年10月31日
    3
  • Java之父:C语言是撑起一切的基石[通俗易懂]

    Java之父:C语言是撑起一切的基石[通俗易懂]为了忘却的纪念:无论任何领域,伟大的人物,永远不死!2011年10月9日,患有前列腺癌和心脏病的C语言之父丹尼斯·里奇离世。不知不觉,这位伟大的程序员已经离开我们已经有6年了。有人曾说,没有C语言之父,就没有乔布斯。C语言之父影响力其实不止这些。毫不夸张的说,没有C语言之父,就没有微软的Windows10和SurfaceBook,也没有安卓智能手机

    2022年7月8日
    24

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号