Java
文章平均质量分 72
iteye_21091
这个作者很懒,什么都没留下…
展开
-
用JakartaCommon的net组件来做ftp下载
这几天一个同事要在项目里实现用ftp下载文件. 遇到了很多问题. 于是我推荐他用Jakarta-Commons项目中的net组件在实现. 其实之前我也没有实际用过, 稍稍看了一下文档,知道里面有个ftp包能完成相关的操作. 于是我的同事就兴致勃勃的拿去用了. 可用了以后才发现有很多问题, 搞得焦头烂额. 经过我们的努力, 终于把问题都解决了, 下面我把遇到的问题和解决方案写下来, 以备其他想要用c...2007-11-08 19:44:41 · 100 阅读 · 0 评论 -
Apache Mina 2 文档翻译 - 章节汇总
[size=x-large]Apache Mina 2 文档翻译 - 章节汇总[/size][url=http://zjumty.iteye.com/blog/1857069]第一章 - 开始[/url][url=http://zjumty.iteye.com/blog/1859838]第二章 - 基础[/url][url=http://zjumty.iteye.com/blog/18...原创 2013-06-09 11:45:48 · 152 阅读 · 0 评论 -
用keytool创建Keystore和Truststore文件
[size=x-large]用keytool创建Keystore和Trustsotre文件[/size]JSSE使用Truststore和Keystore文件来提供客户端和服务器之间的安全数据传输。keytool是一个工具可以用来创建包含公钥和密钥的的keystore文件,并且利用keystore文件来创建只包含公钥的truststore文件。在本文中,我们学习如何通过下面的5步简单的创建...2013-06-11 11:18:56 · 701 阅读 · 0 评论 -
Apache Mina - SSL配置
[url=http://zjumty.iteye.com/blog/1884465]Apache MINA文档系列[/url][size=x-large]Apache Mina - SSL配置[/size]本文中我们看一下如何为一个简单的客户端/服务器应用程序配置安全套接字(SSL)。 我们需要一下3个步骤:创建SSLContext服务器部分客户端部分[si...2013-06-11 18:33:33 · 359 阅读 · 0 评论 -
把纯文本字符串用Gzip压缩再转换为Base64能有多少压缩率呢?
其实具体多大压缩率要看源文件的内容,一般来说重复的单词越多,压缩率越高。下面是把/usr/share/dict/words压缩的测试程序[code="java"]import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.i...2013-06-15 14:22:17 · 2521 阅读 · 0 评论 -
在传输层上压缩WebService的请求和响应
[size=x-large]在传输层上压缩WebService的请求和响应[/size][size=medium]场景[/size]场景是这样的:客户端.NET 3.5应用程序,WCF实现WebService调用, 服务端Java,通过CXF提供WebService。 有一个方法提供了有一个字符串类型的参数,实际生产环境里会传100k以上的字符串。在并发量比较大的情况下,带宽占用很...原创 2013-06-19 23:18:24 · 200 阅读 · 0 评论 -
解决了中文乱码问题的emma-maven-plugin
用emma-maven-plugin在Maven里集成emma进行代码覆盖率测试时,如果用的官方的emma-maven-plugin的话,在java源码的字符编码和操作系统的默认字符编码不一致的情况下会汉字会出现乱码。这是因为emma-maven-plugin和emma做的不够完善,没有提供读取源码时指定字符编码的接口,而是始终采用系统默认编码来读取源文件。我修改了emma的原代码,加入了...2013-06-23 00:10:21 · 172 阅读 · 0 评论 -
Pro Java 7 NIO 2 读书笔记
[size=x-large]Pro Java 7 NIO 2 读书笔记[/size][img]http://dl2.iteye.com/upload/attachment/0086/3302/093c53a8-e0de-3e35-b794-e1abcb8c53e1.jpg[/img]花了几天把这本书初略的看了一下, 之所以初略的看了一下,是因为这书里确实没啥内容。如果去了NIO 1...2013-06-29 14:16:45 · 163 阅读 · 0 评论 -
让JPA的Query返回Map对象
[size=xx-large]让JPA的Query返回Map对象[/size]在JPA 2.0 中我们可以使用entityManager.createNativeQuery()来执行原生的SQL语句。 但当我们查询结果没有对应实体类时,query.getResultList()返回的是一个List。也就是说每行的数据被作为一个对象数组返回。 常见的用法是这样的:[code=...2013-08-10 17:45:50 · 3316 阅读 · 0 评论 -
Java里的CompareAndSet(CAS)
Atomic 从JDK5开始, java.util.concurrent包里提供了很多面向并发编程的类. 使用这些类在多核CPU的机器上会有比较好的性能.主要原因是这些类里面大多使用(失败-重试方式的)乐观锁而不是synchronized方式的悲观锁.今天有时间跟踪了一下AtomicInteger的incrementAndGet的实现.本人对并发编程也不是特别了解, 在这里就是做个笔记, ...2013-04-24 17:20:00 · 787 阅读 · 0 评论 -
在MongoDB里实现循环序列功能
环境是这样的:服务器是用Java做的, 数据库是MongoDB 需求是这样的:我们的系统里要生成一个唯一ID,前面的部分有一定的格式,并和时间关联, 精确到微秒,考虑到同一微秒内有可能存在并发情况, 所以后面在加两位序列号, 系统需要定义为1毫秒内的并发小于100个,所以后面两位就够用了。 Java服务器端有多台机器都可以用来生成这个唯一ID,所以需要在不同的机器上不能生成相同的序列号...原创 2013-04-26 22:53:08 · 667 阅读 · 0 评论 -
Apache Mina 文档翻译 - 第一章 开始
第一章 - 开始原文:http://mina.apache.org/mina-project/userguide/ch1-getting-started/ch1-getting-started.html在这一章,我们将讨论MINA的是什么,NIO是什么, 为什么我们要在NIO上再开发一个框架,你可以在这个框架里找到什么。最后我们也会通过MINA运行一个非常简单的服务器的例子。 NI...原创 2013-04-29 23:14:58 · 154 阅读 · 0 评论 -
Spring Boot项目中自动reload模板文件
最近在研究Spring Boot, 这东西挺好的, 一切都从一个main方法开始, 把很多东西都集成在里面了.下面是我研究时写的一些代码. [url]https://github.com/zjumty/spring-boot-demo[/url]有兴趣的可以从上面的代码开始创建项目, 比直接从头自己写快一些.集成了MyBatis, jetty, freemarker....2015-03-31 17:52:51 · 399 阅读 · 0 评论 -
Apache Mina 文档翻译 - 第十七章 - Spring整合
[size=x-large]第十七章 - Spring整合[/size]本章中演示了如何把MINA应用程序和Spring框架整合在一起。 文章的内容来源于http://www.ashishpaliwal.com/blog/2008/11/integrating-apache-mina-with-spring/[size=medium]应用程序的结构[/size]我们创建一个...2013-06-08 15:49:49 · 118 阅读 · 0 评论 -
Apache Mina 文档翻译 - 第十六章 - JMX支持
[size=x-large]第十六章 - JMX支持[/size]Java Management Extensions (JMX) 是用来管理和监视java应用程序的。在这篇文章里通过一个例子来说明如何让你的MINA应用程序可以被JMX管理。下面的程序演示了如何将JMX技术整合进MINA的应用程序,我们把JMX类整合进前面的图片服务器的例子。[size=large]添加J...2013-06-08 11:59:32 · 86 阅读 · 0 评论 -
Apache Mina 文档翻译 - 第十四章 - 状态机
[size=xx-large]第十四章 - 状态机[/size]如果你在用MINA开发复杂的网络应用程序,有时候需要用来状态模式来应对问题的复杂性。在自己实现状态模式之前你可以先看看mina状态机,利用这个功能可以方便的实现状态模式。[size=large]一个简单的例子[/size]我们来演示一下怎么用mina状态机实现一下简单的例子。下面这个图展示了一个标准的磁带机的状...2013-06-07 23:41:37 · 124 阅读 · 0 评论 -
自己做一个类似mongofiles的命令行工具来操作GridFS
为什么要自己做一个呢?因为mongodb自带的mongofiles到现在也不能操作和查看某个bucket的下的文件, 只能查看和操作fs下的文件. mongo-java-driver中的那个CLI也不能做这个, 甚至连用户名和密码都不能指定. 所以不如我们自己做一个吧. 代码如下, 不多说了: import com.mongodb.DB;import com.mongo...原创 2013-05-02 19:38:14 · 198 阅读 · 0 评论 -
用VisualVM对Eclipse Virgo服务器进行Profile
在开发上遇到一些性能问题时,我们经常会使用一些Profiler工具对系统进行profile,最常见的是查看内存使用情况或方法调用时间。其中开源工具VisualVM是一个不错的选择。 想了解VisualVM的相关信息可以查看这里:https://visualvm.java.net/http://www.baptiste-wicht.com/2010/07/profile-appl...原创 2013-05-03 22:35:21 · 233 阅读 · 0 评论 -
Apache Mina 文档翻译 - 第二章 基础
第二章 - 基础在第一章,我们对Apache MINA有了一个大致的了解。在这一章里我们来研究一下客户端/服务器架构以及如何创建基于MINA的服务器和客户端。我们还会做一下简单的TCP和UDP协议的服务器和客户端。基于MINA的应用程序架构经常有人会问:基于MINA的应用程序是什么样子?在本章中我们会介绍基于MINA的应用程序架构。鸟瞰图 : 这里,我们可以看见MINA是应用...原创 2013-05-04 20:37:22 · 140 阅读 · 0 评论 -
NodeJS vs Netty
周末跟朋友聊天, 一个朋友说NodeJS是个不错的东西, 它的非阻塞异步处理模式比用apache的fork的方式高效. 我在想如果是依靠非阻塞异步处理的方式提升性能的话, 其实现在主流的平台上都有相应的东西, 例如Java的NIO. 我想肯定有人做过比较, 于是我上网搜了一下Node.js vs Netty. 用apache benchmark来做的基于HTTP协议上的Hell...原创 2013-05-06 10:09:58 · 3665 阅读 · 0 评论 -
Apache Mina 文档翻译 - 第三章 - IoService
第三章 - IoService在第二章我们已经看到无论在服务端还是在客户端,MINA里的IoService接口都是所有IO服务实现的基类。它负责处理你的应用程序和远程主机之间的交互,收发消息, 管理会话和连接等工作。IoService是一个接口,在服务端被实现为IoAcceptor,在客户端被实现为IoConnector。在这一章中我们会了解到下面的内容: IoService简介 ...2013-05-26 22:52:01 · 140 阅读 · 0 评论 -
Apache Mina 文档翻译 - 第四章 - Session
第四章 - Session会话(Session)是MINA的最重要的部分之一:每当一个客户端连接到服务器,MINA都会创建一个新的会话,并且会一直保存在内存中,直到客户端断开连接。会话用来存放连接的持久化信息和请求处理过程中需要的任何信息, 这些信息会存在于整个会话生命周期。会话状态会话是有状态的,并且状态会发生变化: 连接:会话创建并且可用。 空闲:在一段时间内会话没有...2013-05-27 23:37:56 · 109 阅读 · 0 评论 -
Apache Mina 文档翻译 - 第五章 - 过滤器
第五章 - 过滤器IoFilter是MINA的重要组件之一, 它可以过滤在IoService和IoHandler的所有IO事件和请求。 如果你有Web应用程序开发经验, 你会发现它和Servlet的过滤器十分相似。MINA提供了很多可以直接使用的过滤器,这大大简化了网络应用程序的开发,例如: LoggingFilter:记录所有事件和请求 ProtocolCodecFilter:...2013-05-28 23:23:20 · 121 阅读 · 0 评论 -
Apache Mina 文档翻译 - 第六章 - 传输协议
第六章 - 传输协议前面的章节中我们已经接触到了TCP和UDP传输协议。这章中我们主要关注一下APR和串口通信。 APR传输APR (Apache Portable Runtime - Apache可移植运行环境)具有很好的可延展性和性能并且能同原生的服务器技术整合在一起。MINA中提供了对APR的支持。下面我们通过一个时间服务器的例子来学习怎么在MINA中使用APR传输。前提条...2013-05-29 22:56:31 · 119 阅读 · 0 评论 -
Apache Mina 文档翻译 - 第七章 - Handler
第七章 - HandlerIoHandler处理所有MINA产生的IO事件。这个接口是在过滤器链的尾端,是所有活动的集线器。IoHandler有以下方法: sessionCreated sessionOpened sessionClosed sessionIdle exceptionCaught messageReceived messageSent...2013-05-30 21:59:02 · 83 阅读 · 0 评论 -
Apache Mina 文档翻译 - 第八章 - IoBuffer
第八章 - IoBufferIoBuffer是MINA应用程序中使用的字节缓冲区(ByteBuffer)IoBuffer是NIO的ByteBuffer的替代品。MINA没有直接使用NIO的ByteBuffer,因为以下原因: ByteBuffer缺少一些有用的getter和putter方法,例如fill, get/putString,和get/putAsciiInt(). Byt...2013-06-01 15:52:20 · 139 阅读 · 0 评论 -
Apache Mina 文档翻译 - 第九章 - Codec过滤器
第九章 - Codec过滤器本章中会说明为什么要使用ProtocolCodecFilter和如何使用ProtocolCodecFilter。为什么使用ProtocolCodecFilter?TCP可以保证数据包按照正确的顺序投递。但是不能保证在发送端的写操作对应在接收端一定有一次读操作。具体参照:http://en.wikipedia.org/wiki/IPv4#Fragmenta...原创 2013-06-02 22:32:57 · 134 阅读 · 0 评论 -
Apache Mina 文档翻译 - 第十二章 - 日志Filter
第十章 - Executor Filter在MINA 1.X的版本里,你可以在Acceptor级别定义线程模型。这是Acceptor设定的一部分。但是这种做法带来了复杂性,所以MINA的开发团队决定废弃这种方式,取而代之的是个更加灵活的方式,基于Filter:ExecutorFilterExecutorFilter类这个类实现了IoFilter接口,它里面包含一个Executor,并...2013-06-03 23:33:37 · 112 阅读 · 0 评论 -
异步Servlet在什么样的场景下能发挥作用?
从 Servlet 3.0开始, 异步Servlet成为了标准, 在此之前类似jetty这样的web服务器都已经有了自己的实现. 从2011年3月份 Servlet 3.0 的最终规范出来到现在4年已经过去了, 似乎在实际项目上看到的用异步方式处理HTTP请求的例子并不多. 我想不是因为异步Servlet太复杂, 也不是因为异步Servlet的实现不稳定, 而是多数情况下人们找不到应用他的场景. ...2015-04-13 18:25:35 · 798 阅读 · 0 评论