04 2014 档案
摘要:[正则表达式]文本框输入内容控制整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$"。只能输入n位的数字:"^\d{n}$"。只能输入至少n位的数字:"^\d{n,}$"。只能输入m~n位的数字:。"^\d{m,n}$"只能输入零和非零开头的数字:"^(...
阅读全文
摘要:本章中演示在Spring中整合Mina,为了整合到Spring,需要做以下几个步骤:1. 设置IoHandler2. 创建Filters并加入到Chain中 3. 创建IoAcceptor ...
阅读全文
摘要:为何要使用Codec Filter1. 任何一个网络应用程序接受到消息后,都需要知道消息的开头和结束。2. 你可以把协议解析的部分放在IoHandler,但这样就会造成业务代码和协议解析代码混淆在一起3. Codec Filter提供了一种方法将你协议解析代码和业务代码分离出来如何使用Codec F...
阅读全文
摘要:IoBuffer是一个被MINA体系所使用的字节数组。它是ByteBuffer的替代品,Mina不使用NIO的ByteBuffer有两个原因:1. ByteBuffer没有提供更多有用的api,如fill,get/putString等2. ByteBuffer是定长的,故无法写入变长的数据IoBuf...
阅读全文
摘要:IoHandler处理事件在Filter Chain 之后进行。IoHandler包含处理以下几个事件的功能:1. sessionCreated event:session创建事件,对于Tcp而言该事件在连接建立时触发,对Udp而言,该事件在Udp数据包到达时触发。该功能常被用于初始化session...
阅读全文
摘要:IoFilter 是MINA中的一个核心结构,扮演了非常重要的角色。IoFilter在IoService和IoHandler过滤了所有的I/O 事件和请求。如果你有做个web项目的经验,则很类似于web中的filter。为了加快开发效率,Mina提供了很多的filter,例如:1. LoggingF...
阅读全文
摘要:Session(会话)是Mina的核心部分:每当一个clinent连接到server时,都会创建一个新的session,并且保存在内存中知道该链接断开。session 是用来存储一些关于连接信息,加上各种服务端在处理请求时可能会用到的信息。Session statesession有一个状态,并且会随...
阅读全文
摘要:从上一篇文章中知道,IoService出于MINA体系中的底层。IoService将会帮你维护网络交互,接受消息,发送消息,管理Sessions,管理连接Connections等等。IoService 是一个接口,服务端的IoAcceptor和客户端的IoConnector均继承了该接口。下面我们将...
阅读全文
摘要:基于MINA应用程序结构图:我们可以看出,MINA是应用程序(客户端或服务端)和底层基于TCP,UDP等通讯协议的网络层之间的粘合剂。而且各个模块之间是相互独立的,你只需要在MINA体系基础上设计你的应用程序,而不用去处理复杂的网络层。下图展示了MINA的内部组件以及MINA各个组件的功能。很显然,...
阅读全文
摘要:在上一篇文章中介绍了关于缓冲区的一些细节内容,现在终于可以进入NIO中最有意思的部分非阻塞I/O。通常在进行同步I/O操作时,如果读取数据,代码会阻塞直至有 可供读取的数据。同样,写入调用将会阻塞直至数据能够写入。传统的Server/Client模式会基于TPR(Thread per Request...
阅读全文
摘要:在上一篇文章中介绍了缓冲区内部对于状态变化的跟踪机制,而对于NIO中缓冲区来说,还有很多的内容值的学习,如缓冲区的分片与数据共享,只读缓冲区等。在本文中我们来看一下缓冲区一些更细节的内容。缓冲区的分配在前面的几个例子中,我们已经看过了,在创建一个缓冲区对象时,会调用静态方法allocate()来指定...
阅读全文
摘要:在第一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如果我们使用get()方法从缓冲区获取数据或者使用put()方法把数据写入缓冲区,都会引起缓冲区状态的...
阅读全文
摘要:在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,系统一次一个字节地处理数据,一个输入流产生一个字节的数据,一个输出流消费一个字节的数据,面向流的I/O速度非常慢,而在Java 1.4中推出了NIO,这是一个面向块的I/O系统,系统以块的方式处理处理,每一个操作在一步中产生或者消费一...
阅读全文
摘要:Buffer是一个包装了基本数据元素数组的对象,它以及它的子类定义了一系列API用于处理数据缓存。一、属性Buffer有四个基本属性:1、capacity 容量,buffer能够容纳的最大元素数目,在Buffer创建时设定并不能更改2、limit buffer中有效位置数目3、position 下一...
阅读全文

浙公网安备 33010602011771号