Apache Mina框架自身實現的過濾器


        在Apache Mina中,IoFilter介於IoService和IoHanlder之間,該IO過濾器對所有的輸入、輸出事件進行過濾,其在Apache Mina中的地位不可忽視,Apache Mina框架自身實現了很多過濾器,現將其作用總結一下:

        1、BlacklistFilter:該過濾器稱為黑名單過濾器,該過濾器用於阻止特定IP地址的訪問Apache Mina服務端。其使用方法如下:

private void addFilter(IoAcceptor acceptor) throws UnknownHostException{
BlacklistFilter blacklistFilter = new BlacklistFilter();
InetAddress[] inetAddress = new InetAddress[1];
inetAddress[0]=InetAddress.getByName("169.254.11.186");
blacklistFilter.setBlacklist(inetAddress);
acceptor.getFilterChain().addFirst("black",blacklistFilter);
}

         注意:該過濾器只用於Apache Mina服務端。

       2、LoggingFilter:該過濾器稱為日志過濾器,用於將Apache Mina運行情況輸出到指定的日志文件中。其使用方法如下:

        服務端:

private void addFilter(IoAcceptor acceptor) throws UnknownHostException{       acceptor.getFilterChain().addFirst("logger", new LoggingFilter());   }

        客戶端:

private void addFilter(NioSocketConnector connector) throws UnknownHostException{        connector.getFilterChain().addFirst("logger", new LoggingFilter());   }

        3、ProtocolCodecFilter:該過濾器稱為協議解碼器,負責對文本字符串進行解編碼。。其使用方法如下:

        服務端:

private void addFilter(IoAcceptor acceptor) throws UnknownHostException{       acceptor.getFilterChain().addFirst("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));   }

        客戶端:

private void addFilter(NioSocketConnector connector) throws UnknownHostException{        connector.getFilterChain().addFirst("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));   }

        4、CompressionFilter:該過濾器稱為壓縮過濾器,用於在設置輸入、輸出流時啟用JZlib壓縮


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com