Mina源码分析:为何过滤器源码中没有对下一个过滤器为null的处理

Ubuntu 24.04安装Python 2.7终极指南:PPA、编译与容器化方案详解 在软件生命周期管理中,旧版本运行时环境的维护是系统管理员和开发者常面临的挑战。以Python为例,其2.x版本已于2020年结束官方支持,这导致新版操作系统不再预装或提供官方软件包。这一变化背后的技术原理是软件供应链的演进——Linux发行版遵循上游维护策略,逐步淘汰过时组件以提升系统安全性和维护效率。对于依赖特定旧版环境的遗留项目,这种变化带来了直接的兼容性问题,但通过第三方软件源、源码编译或容器化等工程实践,仍能构建稳定的运行环境。在Ubuntu 24.04中,官方已移除Python 2.7软件包,此时 阅读详情
Mina源码分析:为何过滤器源码中没有对下一个过滤器为null的处理
作者:ococo 2010.5.11.
为什么过滤器代码中都没有对下一个过滤器为null时的处理?例如:LoggingFilter中的代码
    @Override
    public void messageReceived(NextFilter nextFilter, IoSession session,
            Object message) throws Exception {
        log(messageReceivedLevel, "RECEIVED: {}", message );
        nextFilter.messageReceived(session, message);//why? if(nextFilter!=null) nextFilter.messageReceived(session, message);
    }

答案:

Mina在FilterChain中增加了头过滤器和尾过滤器。即使用户用getFilterChain().addLast()添加过滤器到集合的尾部,但并不是插入到过滤器链的尾部。其实getFilterChain()返回的并不是FilterChain,而是FilterChainBuilder。在buildFilterChain()时,添加了内置的头和尾过滤器。也就是用户的过滤器保证是在链表的中部。自然也就不用考虑头尾的特殊情况。

当然这个头尾过滤器并不是仅仅为了让用户省掉null才添加的。而是另有用途,尾部过滤器除了有计数功能外,也担当着调用handler的messageReceived()的重任。

CMOS的宽/长比、传输门与三态门、锁存器与触发器、简单版图、竞争与冒险 目录 1.CMOS的宽长比 2.传输门与三态门 传输门 三态门 3.锁存器与触发器 3.1RS锁存器[3] 3.2D锁存器 3.3D触发器 4.简单CMOS器件的版图 5.竞争与冒险 1.CMOS的宽长比 关于COMS原理及结构图可以参考[1]COMS原理及门电路设计. 栅在源漏方向的长度称作栅的长L,垂直方向称为栅的宽W,如图1中NMOS的版图。 图1 以MOS管... 阅读详情

相关推荐

如何在R中高效安装ropls及其依赖包

本文详细介绍了在R语言中高效安装ropls包及其依赖的完整流程。作为Bioconductor生物信息学分析包,ropls的安装需通过BiocManager管理器进行。文章提供了标准安装步骤、跨系统避坑指南及安装后验证方法,帮助用户解决R版本、编译环境和网络镜像等常见问题,确保代谢组学数据分析工具顺利部署。

efc123456的博客 908

关于mina内部有向个线程在执行---mina源代码分析

最近,看了一个大牛写的mina源代码分析,转一下,http://www.zoomhoo.com/viewthread.jsp?tid=261&am apache MINA 源码级分析 如果对MINA不了解请看 http://www.ibm.com/developerworks/cn/opensource/os-cn-apmina/ 关键字: mina 线程 最近,项目结束[...

iteye_16421的博客 196

线性分类器(Linear Classifier)

线性分类器 如上图所示,这是二维空间中的一个数据集,如果他正好能够被一条直线分成两类,那么我们称它为线性可分数据集,这条直线就是一个线性分类器。 在三维空间中,如果数据集线性可分,是指能够被一个平面分为两类。 在一维空间中,所有的点都在一条直线上,如果线性可分。可以理解为它们能够被一个点分开。 这里的直线、平面、点被分为决策边界。 一个 m 维空间中的数据集,如果能够被一个超平面一分为二,那么这个数据集就是线性可分的,这个超平面就是决策边界。 例如,这是二维平面上的一条直线, 它可以把平面切分成两

xuechanba的博客 1万+

mina-02:添加过滤器

1.连接routor的API:RoutorAPI2.routor:Routor3.ControlAPI:点击打开链接

tansuoliming的博客 375

告别配置烦恼!保姆级教程:在Windows 10/11上为QT5.14.2配置MSVC2017编译器(附VS2022组件避坑指南)

本文提供了一份详细的保姆级教程,指导如何在Windows 10/11上为QT5.14.2配置MSVC2017编译器,包括VS2022组件避坑指南。从环境准备到关键配置,再到调试工具验证和Qt Creator中的编译器设置,一步步解决常见问题,帮助开发者快速搭建稳定可靠的开发环境。

weixin_30615767的博客 502

SenseVoice 实测,阿里开源语音大模型,识别效果和效率优于 Whisper,居然还能检测掌声、笑声!5分钟带你部署体验

阿里开源语音大模型:语音识别效果和性能强于 Whisper,还能检测掌声、笑声、咳嗽等

u010522887的专栏 4万+

mina源码分析——bind

关于Mina mina是开源的NIO框架,其project地址: http://mina.apache.org/mina-project/features.html 想快速了解mina就看user guide: http://mina.apache.org/mina-project/userguide/user-guide-toc.html mina给我的感觉:干净、利落的抽象,非常...

388

C#海康威视摄像头控制,将IntPtr转换成Bitmap图片

C#通过skd控制海康威视摄像头,获取bitmap格式图片

ReflexMechanism的博客 6586

mina源码解析之---数据接收处理流程

        如果想通过Mina来实现一个自定义协议的网络应用程序,用户只需要编写自定义协议编解码处理器和业务处理逻辑即可。由于每一个Session关联一个Processor处理线程,多个Session共享有限的Processor线程池,如果Handler中的业务逻辑处理比较耗时,会导致后续请求阻塞等待,严重降低效率,所以,一般会向Acceptor的FilterChain添加一个Execut...

scriptguy的专栏 521

国产大模型编程能力深度分析报告(2026年5月更新版)

2026年5月国产大模型编程能力报告显示,主流模型迎来重大升级。DeepSeek V4以1.6T参数创性能新高,Qwen3.6-Plus支持原生多模态编程,MiniMax M2.7转向闭源并优化Agent编码,Kimi K2.6成为商业化成熟的主力模型,GLM-5开源并涨价30%。阿里云百炼推出双轨订阅体系,区分团队和个人开发者需求。各模型在参数规模、上下文长度、性能表现和适用场景上各具优势,国产AI编程服务正加速向订阅制转型,成本效益显著提升。

Willin Wang 的全栈升级指南 1645

微信小程序 - 解决web-view嵌套H5网页白屏问题,将h5网页嵌套在webview页面出现无法加载一片空白,详解微信小程序<web-view>页面跳转出现白屏情况(无论本地还是线上H5都能解决)

微信小程序解决web-view打开网页在手机上出现白屏的问题,小程序web-view嵌套H5项目白屏问题分析及解决,使用web-view组件加载H5网页链接后白屏情况,小程序嵌套的h5网页中跳转页面时也有可能出现白屏问题,嵌套webview页面时,出现白屏,WebView 加载不出网页,微信小程序<web-view>页面跳转出现白屏解决方法,解决WebView白屏空白,H5内嵌第三方小程序打开白屏,微信小程序嵌入h5页面加载空白,微信小程序web-view跳转h5白屏,解决微信小程序web-view打开网页

🏆 前端领域优质创作者 1万+

MINA源码分析----日志过滤器 LoggingFilter

该类继承自IoFilterAdapter,主要完成两件事 1、记录事件 2、再把会话事件传递到下一个过滤器中处理, 最后交给IoHandler处理 /* */ package org.apache.mina.filter.logging; import org.apache.mina.core.filterchain.IoFilter; import org.apache.mina.c

佳颖的专栏 2568

C#实现每日定时执行制定程序(附完整源码)

C#实现每日定时执行制定程序(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 862

对过滤器(filter)的一点小思考

前言        我们知道,假如我们在web应用中 设置了三个过滤器 1,2,3,那么执行流程应该是                   过滤器1》过滤器2》过滤器3》具体业务》过滤器3》过滤器2》过滤器1         我当初想web容器是如何做到这个执行顺序的呢,最开始考虑的就是 是否采用的动态代理,因为相当于对 业务方法进行了 加强,但是仔细一想,如果是通过 动态代理,那么 业务方...

zaige66的博客 410

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

(三)Mina源码解析之IoFilter

本篇文章主要剖析Mina中的过滤器是如何实现的 首先还是引入一个简单的完整的server端的例子,代码如下 public class Server { public static void main(String[] args) { IoAcceptor acceptor = new NioSocketAcceptor(); acceptor.getSessionConfig().s

Mr孔先森 6689

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

mina源码分析---IoEvent和IoFilterEvent类及其联系和区别

IoEvent是MINA提供的IO事件或IO请求的类 package org.apache.mina.core.session; import org.apache.mina.core.write.WriteRequest; /** * An I/O event or an I/O request that MINA provides. * Most users won't need

佳颖的专栏 1791

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Mina丢包/断包问题解决方法

为什么80%的码农都做不了架构师?>>> ...

weixin_34387468的博客 1109

Mina Logging Filter日志过滤器知识介绍

原文地址:Mina Logging Filter(Apache Mina User Guide Chapter12 Logging Filter) 1.1.1. 背景 Apache MINA使用一个允许基于MINA应用程序的开发人员使用他们自己的日志系统。 1.1.1.1. SLF4J Mina使用简单的Java日志Facade(SLF4J)。你可以在这里找到SLF4J信息。这个日志记

纸上得来终觉浅,绝知此事要躬行 6364

java mina 源码解析_深入解析Apache Mina源码(1)——Mina的过滤器机制实现

一、责任链模式的本来面目Mina中有一个重要的设计模式-责任链模式,它将此模式成功的应用在了它的过滤器链(IoFilterChain)中。开发过J2EE的童鞋们应该对这个模式比较清楚,在Servlet中我们就可以加入Filter的实现,还有Hibernate中也实现了FilterChain。学习怎么实现责任链模式对于我们对开源软件的学习和以后的工作都会有莫大的帮助。我们知道计算机系统就是接收信息...

weixin_35056594的博客 402

最简单的基于FFMPEG的Helloworld程序

本文记录一个基于FFmpeg的HelloWorld程序。该程序可以打印出FFmpeg类库的基本信息。使用该程序通常可以验证FFmpeg是否正确的安装配置。

雷霄骅(leixiaohua1020)的专栏 3万+

禁止apache和tomcat列出目录清单的方法

作者:ococo (2005.04.18)如果用户uri中没有指定文件名,apache和tomcat在默认情况下都会查找默认文件index.*等。找不到都会显示目录清单,而把文件清单暴露出来。而通常这不是我们所想要的。修改方法如下:apache:编译时增加参数--disable-autoindex:   ./configure --prefix=/usr/local/httpd2.0.53 / 

Java我的最爱 1788

Apache2.0官方文档(中文版,超强)

今天新发现Apache2.0官方文档(中文版,超强)http://linux.dalouis.com/doc/apache2.0/

Java我的最爱 1580

Apache.org 掏宝

tomcat + apache 连接器官方网站:http://jakarta.apache.org/tomcat/connectors-doc/apache build configure编译配置:http://httpd.apache.org/docs-2.0/programs/configure.htmlapache http.conf配置:http://httpd.apache.org/do

Java我的最爱 1365

配置OC4J 10以支持https服务 以下是配置OC4J 10以支持https服务的过程

配置OC4J 10以支持https服务 以下是配置OC4J 10以支持https服务的过程﹕1) 使用SUN JDK中提供的keytool工具生成一个server.keystore文件 keytool -genkey -dname "CN=??, OU=??, O=??, L=??, S=??, C=??" -keyalg ?? -keypass welcome -storepass welcom

Java我的最爱 1187

Netbeans7.0横空出世

<br />这几天Netbeans7.0横空出世。从网站和安装页面残留信息还可以看出,这个7.0就是之前推出的Netbeans6.9.10。<br />在Netbeans的官网,正在抹掉6.9.10, 而由Netbeans7.0取代。

Java我的最爱 1130
上一篇: 用于主题检测的临时日志(9eead357-3b45-476a-872c-d40f2e08910d - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
下一篇: Netbeans7.0横空出世
ococo
博客等级 码龄26年 13粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值