stone2083

我的评论

共3页: 上一页 1 2 3 
re: 由数据订正想到的 stone2083 2008-07-28 21:13  
无奈啊,很多时候,也只能尽自己力量,在有限的条件呢,把事情做好。
理想和现实的差距实在是太大了。
re: 资源如何避免多线程下载 stone2083 2008-07-18 20:39  
文章的本意不是说通过servlet,来控制文件的下载。
而是站在协议的角度上,通过servlet的例子,来说明,只要修改content-length的值,就能达到“只允许单线程下载资源“的目的。
虽然,通过修改协议的规定,擅自修改http头信息的方式的做法,不符合规范。但是对于小站点来说,是一个成本最小的方法。
站点上的图片等,都是资源,如果都允许多线程下载,那么用户量一多,对于小网站来说,还是有点困难的。
文章采用servlet,仅仅用于举例说明.真正的应用上,可以通过修改apache,lighttpd,等web服务器的配置,来达到这个目的。

如果是资源的下载,那么肯定通过更为专业的ftp server来对外服务。而不是采用http协议。当然传统的ftp server,也是有IO消耗的。

至于楼上所说的X-sendfile,我也看过javaeye的文章(http://robbin.javaeye.com/blog/154538)。X-sendfile,确实是一个很先进的理念(至少我看来是,或许我是一个很老土的人)。
但是自己对这个没有任何尝试,也没有更多的评论资格。
re: SSL双向认证java实现 stone2083 2008-07-14 13:21  
@JessonWoo
hi,首先申明下,我自己对ssl的认识还是很肤浅的,仅仅上次和cnnic合作的时候,为了了解安全性问题,才被迫稍微看了相应的一些知识.

所谓认证,是要对某台(当然可以是集群)服务器身份做认证.
认证方式有两种:
自签名认证:服务端生成key,然后根据key导出证书.公布于站点.
通过第三方认证机构认证:有服务端生成key,然后导出认证信息,交由天威诚信等第三方认证机构认证,最后生成证书,公布于站点.

客户端,将证书下载,确认为可信任公司认证信息,并且导入到受信任区(trustscore),建立连接与服务端进行正常交互.至此,就完成了对服务端的认证.
所以客户端必须将证书导入信任区.

java中,可以查看证书:
写个简单的方法:
FileInputStream fis = new FileInputStream("cert.cer");
CertificateFactory cf=CertificateFactory.getInstance("X509");
X509Certificate c=(X509Certificate) cf.generateCertificate(fis);
System.out.println(c.getSubjectDN());
//可以查看下X509Certificate的一些get方法.

其实keytool仅仅是jdk中的工具.
openssl是更常用的一个工具
可见:http://www.openssl.org/
re: jdk gc简介 stone2083 2008-07-03 22:09  
这么朋友实在是过奖了.
我仅仅记录了我对jdk gc的浅薄理解.
sun的文档,比我这边是详细多了.
re: CGlib简单介绍 stone2083 2008-07-03 22:07  
不可否认,每项技术总会存在弊端,比如cglib,导致jvm Permanet Generation 不再稳定,如果配置不当,并且大量生成cglib代理类的时候,出现out of memory;
又或者,调试代理类的时候,相当不方便...
但是cglib有他可喜的一面,底层采用asm,动态生成字节码,比jdk proxy效率高了不知多少;为spring aop提供了底层的一种实现;hibernate使用cglib动态生成DO/PO (接口层对象)字节码...应用是何等的广泛.
为java静态语言提供了动态特性(当然,底层是asm功劳),多么可喜.

我不清楚,你所谓使用cglib产生附加问题,具体是什么问题?
re: 感慨于我们的技术土壤 stone2083 2008-05-25 20:33  
深有同感,现在google上搜索某些内容,会有多少千篇一律,甚至一字不差的文章.
期待原创的作品,哪怕是不成熟的想法,见解.
re: 关于Java String对象创建问题解惑 stone2083 2008-04-27 12:04  
没有必要太在意这个问题.
因为不同的jdk下,比如sun jdk,ibm jdk等,答案是非唯一的.而且不同的jdk版本下,也有可能存在不同的答案.
sun jdk是对String优化做的最多的.所以才这么拗.很多公司都拿string做面试题,没有意义的.
至于s=s+"47",至少在jdk5以下,在String pool中肯定会创建一个新的对象.但是之后的版本怎么处理,就没去看过了.
re: SSL双向认证java实现 stone2083 2008-04-20 17:18  
谢谢wangpeng朋友,找到上原先demo中的一个问题。
因为在Server端程序中,初始化的SSLServreSocket
serverSocket = (SSLServerSocket) ctx.getServerSocketFactory().createServerSocket(DEFAULT_PORT);
少写了条语句:serverSocket.setNeedClientAuth(true); //表明需要验证客户端的身份。

由于原demo程序,不需要客户端身份验证,所以即使服务端没有客户端证书,也能完成通讯。

受限于自己对jsse理解非常的浅,上面的文章仅仅是覆盖了jsse很表层的内容。
推荐ibm网站上的一篇文章,对jsse和ssl写得很深入浅出。
为高级 JSSE 开发人员定制 :http://www.ibm.com/developerworks/cn/java/j-customssl/

如有问题,欢迎再交流 :)
主要是spring和hibernate这些框架使用cglib动态生成代理类,动态加载类描述信息,导致如果perm区设置过小的情况下,会出现outofmemoryerror的情况。
但是也没有必要把perm区设置过大,可以在生产环境使用jstat命令观察perm区的情况,从来设定它的大小。
共3页: 上一页 1 2 3