用HttpComponents下载网页

周末无聊,简单了解了下Apache基金会的HttpComponents,它是原Apache下jakarta下Commons下的一个子项目HttpClient,现在独立了。虽然看标题用这玩意下网页很自然,可它的Tutorial有一句话:它不是HttpClient的替代者,确实用这玩意下网页浪费了。简单地看了下HttpClient代码发现也是基于HttpCore,这次在只使用HttpCore下写个小型的下载网页工具,不废话了,直接上代码。(@鱼尾Swing 有木有代码高亮工具啊)

解开exe包装的java程序

本文内容只用于学习目的,由于源代码涉及版权,请勿滥用本文方法,以免惹上官司。

由于java采用了虚拟机制,一个java程序会被编译成平台无关的中间代码,并且Sun当初在设计时给与了虚拟机较高的自由度,很多优化都是在虚拟机上完成的,这就导致采用java编写的程序非常容易被反编译。
另一方面,java程序的结构决定,每一个类都是一个独立文件,这样寻找反编译后具体的代码,然后修改并装载入原始程序都非常方便。

其实以上都是废话,为了凑字数~~~我其实要解决的问题就是把一个用java编写的程序,然后对其包装成exe的程序,提取源代码。

首先:解包
本方法并不使用全部的java2exe文件。方法很简单:重命名成.rar结尾的文件。

其次:反编译
找一个jar/class反编译程序反编译,这里推荐JD,您可以从一下地址下载http://java.decompiler.free.fr/?q=jdgui,这是一个免费的软件。

为打印页面提供专用CSS

曾经探讨过要怎么为打印一个网页提供专门的CSS,结论是要用js,于是放弃了。昨天因为机缘巧合重新研究了这个问题,发现单纯的CSS就可以搞定,不过还是有些值得注意的地方,写在这里与各位分享。

废话不多说,直接进入正题。使用CSS为网页提供样式一般来说有3种方法:关联外部css文件,内部style元素,以及内联样式(即使用元素的style属性)。为了实现向打印页面提供专用的样式表,我们必须采用前面两种方式。

使用外部css文件的做法很简单。假设你有一个名为style.css的文件需要关联到当前的页面,通常的做法是使用下面这条语句:

<link rel="stylesheet" type="text/css" href="style.css" />

如果你需要将print.css这个文件用于该页面的打印,你需要做得仅仅是在其后面添加下面的语句(注意红色的部分):

<link rel="stylesheet" type="text/css" href="print.css" media="print" />

但是请注意,style.css这个样式表仍然对打印的页面起作用,因为浏览器判定它是全局的。如果你提供的是独立的样式表,那么可以在引用style.css的语句里加上:

media="screen"

使用media属性就可以为不同终端提供不同的呈现方式,非常方便。

C++学习笔记

因为各种各种,最终决定放弃自己的域名,关掉原来的博客。好在鱼尾童鞋盛情力邀我合写这个博客,写写技术文章,感觉也挺不错的,于是就寄居到这里来了。虽然我不是什么技术达人,写的东西也不全是原创。但毕竟问道有先后,术业有专攻,对于我这个业余时间敲点代码的人,这些都是自己的经验总结,对于我自己十分宝贵,也愿意拿出来与各位分享。

第一篇文章是原来博客上发过的,虽然博客关了,但这篇文章被保存了下来。内容是我学到的一些C++的知识,参考的文献已经不记得了,只是小小的引用,希望没人会告我侵权。(要告我的希望您先留个言好让我删掉,给我一个改过自新的机会,哈:))