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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 多重共线性:python中利用statsmodels计算VIF和相关系数消除共线性

    多重共线性:python中利用statsmodels计算VIF和相关系数消除共线性多重共线性在python中的解决方法本文将讨论多重共线性的相关概念及利用python自动化消除多重共线性的方法,以供参考,欢迎拍砖线性模型与非线性模型关于线性模型与非线性模型的定义,似乎并没有确切的定论,但是个人认为建模首先得清楚地认识样本,样本有线性可分与线性不可分两种,所谓是否线性可分,是指是否存在一条直线(或平面)将样本分开。上图中y=0和y=1的样本可以由一条直线分开,如逻辑回归…

    2022年6月1日
    145
  • linux 心脏滴血漏洞,漏洞bash近日“破壳”,当心再次“心脏出血”

    linux 心脏滴血漏洞,漏洞bash近日“破壳”,当心再次“心脏出血”2014年9月24日,外媒曝出一个广泛存在于主流操作系统的漏洞bash,该漏洞会影响到Redhat、CentOS、Ubuntu、Debian、Fedora、AmazonLinux、OSX10.10等平台,预计影响范围和纵深程度都可能匹敌或者超过今年4月发现的“心脏流血”(Heartbleed)漏洞。9月25日,经过与兄弟厂商的讨论,最终决定将此此漏洞中文名命名为“破壳,并于25日一早将此…

    2022年7月16日
    15
  • sense官网(sense的用法)

    OPNsense利用通用地址冗余协议或CARP进行硬件故障转移。可以将两个或多个防火墙配置为故障转移组。如果主节点上的一个接口出现故障,或者主节点完全脱机,则辅助节点将变为活动状态。利用OPNsense的这一强大功能,可创建具有自动无缝故障转移功能的完全冗余防火墙。切换到备份网络时,连接将保持活动状态,同时对用户的干扰最小。自动故障转移如果主防火墙变得不可用,则辅助防火墙将在…

    2022年4月13日
    103
  • centos7.6开放端口命令_查看端口有没有开放

    centos7.6开放端口命令_查看端口有没有开放概要最近在docker下搭建MySQL和Redis环境,远程linux主机内部网络都走通了,但是就是外网无法连接远程服务器的MySQL和Redis。经过一番查找和学习,终于找到了问题,不仅远程服务器上docker要做好内部和外部端口的映射,关键还要对对外开放的端口添加到防火墙中。内容介绍的逻辑是:本篇文章先记录Centos7下查看防火墙状态和网络状态命令;下一篇将介绍通过docker…

    2022年9月1日
    5
  • 什么是虚拟IP_虚拟机IP

    什么是虚拟IP_虚拟机IP【导读】虚拟ip和真实ip区别,下面就是191路由网整理的网络知识百科,来看看吧!大家好,我是191路由器网小编,上述问题将由我为大家讲解。虚拟ip和真实ip区别是真实IP是网络运营商提供的所以不能自己变更,虚拟IP是自己设置的可以变更。虚拟IP,就是一个未分配给真实主机的IP。也就是说对外提供服务器的主机除了有一个真实IP外还有一个虚拟IP,使用这两个IP中的任意一个都可以连接到这台主机。互联网…

    2022年10月20日
    0
  • HandlerSocket的安装实例及性能测试[通俗易懂]

    HandlerSocket的安装实例及性能测试[通俗易懂] 一HandlerSocket简介Hanldersocket是一个MySQL守护进程插件,它让应用程序可以将MySQL当NoSQL使,Hanldersocket的主要目的是与存储引擎,如InnoDB交互,而不需要SQL相关的开销。访问MySQL表时,Hanldersocket仍然需要打开和关闭表,但不是每次访问都要求打开和关闭,因此减少了互斥争夺,极大地提高了系统性能,当流量变小时,Ha…

    2022年8月24日
    4

发表回复

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

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