jcaptcha是一个开源的用来生成图形验证码的Java开源组件,使用起来也是非常的简单方便。不过,很多网友抱怨该组件默认的图片比较大,影响网页的美观。由于代码过于简单,以至于找不到地方修改。由于tycho(我正在开发的程序)也需要利用该组件生成验证码,所以简单地研究了一下。发现 jcapthca是非常强大的,不光是可以生成图片式的验证码,还可以生成声音式的(新浪就使用了双重验证码)。大家可以到这里下载,并导入到你的工程。
若要利用jcaptcha生成自定义样式的验证码,首先需要为其创建一个验证码引擎,或者说验证码方案类。如下:
Continue Reading »
其实很早以前就使用过FCKeditor,那是在做一个新闻发布系统中,当时使用jsp + struts来开发,FCKeditor在jsp下的配置在网上有很多相关的文章,这里就不多说了。现在使用Velocity开发tycho时,也用到了 FCKeditor,其实配置和jsp一样,只是思维需要转换一下,即,网上所介绍的jsp下使用FCKeditor一般都是在jsp页面上生成实例,而 Velocity并不能完成这一需求,那么我们将FCKeditor的实例放在后台bean中生成,并放入request,然后在Velocity中对其进行设置。后台bean中写法如下:
Continue Reading »
但凡使用过Velocity的人都会有这样的感觉,虽然它有几个内置的对象供我们使用(request、session、 application、attr等),但是,在开发过程中,仅这几个内置的对象并不能完全满足我们的需要。今天我们就要讲讲,在Struts2下面,如何扩展Velocity,自定义出我们的内置对象。
Continue Reading »
这几天一直没有更新blog,主要是将tycho整个框架升了一下级。由原来的jdk1.4升级为jdk6.0,velocity1.4升级为1.5,struts1.29升级为struts2.0.5,spring1.2.9升级为spring2,还有hibernate2升级为hibernate3。从头到脚的翻新了一遍。级升过程中,最为复杂的要属struts了。复杂其实并不是说它的结构,而是改动的地方实在太多。使用过struts2的朋友都应该道知,struts2其实就是webwork的下一个版本,运用了面向方面的思想。在这个版本当中,struts自身保留下来的东西实在是少之又少。一直以来我都没有学习过webwork,这次将系统升级到struts2,着实费了不少功夫。
Continue Reading »
俗话说生命在于运动,知识在于学习,是时候制定下一年的学习计划了。
1、日语
今年几乎没有怎么学习日语,报了二级也没有参加考试。明年一定要好好学习日语,争取能达到比较流利交流的水平。
2、Ruby On Rails
要说今年什么最火,那一定是RoR没错了。通过几天的学习,对RoR有了基础的了解,接下来要好好研究研究。
3、PHP
一直对PHP很有好感,也经常关注相关的新闻,但从来没有深入学习过。接下来准备和朋友一起用PHP开发一个网站,这也是一个学习的好机会。
4、Spring2.0
学习Spring有一段时间了,对其内部机质也有一定的了解。Spring2.0的AOP改动比较大,需要认真的学习一下。
5、Hibernate3
从Hibernate横空出世以来,就一直关注着它的发展,Hibernate3发布后,就没有去学习了。接下来也要分一部分时间去看一看它了。
6、Struts2.0
做项目或者自己写程序,总不会少了它。前段时间2.0发布了,听说内核使用WebWork。WebWork的大名如雷贯耳,但有了Struts就没有学习过它了。这回刚刚好,两个最优秀的MVC框架结合了,一下学两个。呵呵~~
7、Java5.0
Java6.0都快发布了,而我却连5.0都没有深入地学习过,是该补补课啦!
8、领域驱动设计
前段时间一直在看《Domain-Driven Design》,或多或少有了一定的了解,但有些东西还没有完全理解。还要好好学习学习。
Java Web Start是一个基于Java的应用程序,它允许从Web服务器启动、部署和更新Java 2客户端应用程序。这些应用程序可以通过Web的超链接或Java Web start提供的应用程序管理器(Java Application Manager)实用程序初始化运行。若应用程序是第一次运行,将从Web下载被部署的客户端应用程序,之后启动时,会自动检查应用程序的版本是否有更新,如果没有则启动先前下载到本地的程序,有则仅下载更新了的部分。
Java Web Start的核心是JNLP(Java Networking Language Protocol)文件。JNLP是一个XML文件,定义的应用程序的相关参数。
Continue Reading »
Java是利用ClassLoader将类载入内存的。在同一应用中,允许有很多个ClassLoader,通过委派机制,把装载的任务传递给上级的装载器的,依次类推,直到启动类装载器(没有上级类装载器)。如果启动类装载器能够装载这个类,那么它会首先装载。如果不能,则往下传递。当父类为null时,JVM内置的类(称为:bootstrap class loader)就会充当父类。想想眼下的越来越多用XML文件做配置文件或者是描述符、部署符。其实这些通过XML文档描述的配置信息最终都要变成Java类,基实都是通过ClassLoader来完成的。URLClassLoader是ClassLoader的子类,它用于从指向 JAR 文件和目录的 URL 的搜索路径加载类和资源。也就是说,通过URLClassLoader就可以加载指定jar中的class到内存中。下面来看一个例子,在该例子中,我们要完成的工作是利用URLClassLoader加载jar并运行其中的类的某个方法。首先我们定义一个接口,使所有继承它的类都必须实现action方法。如下:
Continue Reading »
去年的今天,我绞尽脑汁向丫头求婚。今年的明天,就是我们结婚一周的的纪念日。为此,我专门向公司请了一天假。
刚才,丫头问我明天是什么日子,我还向她装糊涂。呵呵~~当我告诉她为了我们的纪念日,我特地向公司请假的时候,看的出来,她非常兴奋,但转瞬间又陷入了苦恼,原因是她没有办法请到假。这个我是非常了解的,她们的公司的确没有人情味,因为是小日本独资的公司。其实对她的请假本来就没有抱什么希望。
Continue Reading »

相信很多人都用过BlogDriver的blog吧,其中有一个很具特色的功能–“友情Blog”。将自己喜欢的Blog的Rss地址加入友情Blog 后,它会自动在你的Blog页面上显示出该Blog信息,如最新日志名称及更新的时间。如此一来,即使在你的Blog页面上也可以清楚的知道友情Blog 有没有更新及最新的日志名称,非常方便。PJblog2没有这个功能,不过它提供了插件功能可以使我们自由地扩展它,这也是为什么我选择了PJblog2的原因。
说明一下,由于本人开发这个插件的目的仅仅是满足自己的需要,所以并没有在界面友好性方面下功夫。例如再加新blog时没有做界面,而是改代码,所以对不是很了解代码的朋友,请认真看一下更改说明。另外本插件仅针对Rss2.0进行解析。由于这些功能对我来说已经足够用了,所以不打算进一步完善。当然,你可以任意修改它,不过请保留版权声明。
Continue Reading »
杭州这两天的天气格外的好,中午的时候阳光照在人身上暖洋洋的,不过空气有些干燥,早晨跟晚上的气温也非常低。
好久没有尝过运动的味道了,大概有4个多月了吧,那种感觉几乎都快忘记了呢!这么好的天气不运动真是浪费了,于是约丫头一起去浙大紫荆港打篮球。
这应该是我跟丫头第一次在一起打球,确切地说应是第二次,不过那次她只是看我打。我喜欢运动,更喜欢跟她一起运动。
丫头体力果然不行,才投了几个篮,就累的直喘气。我的体力和弹跳也不如从前了,记得4个月前,我还能轻松的抓住篮框,今天一试,差了半只手那么多。
打了大概半小时篮球,就被丫头拉到了羽毛球场。丫头的力量小,离网远的球回不来。 虽然如此,于她“交量”的两局总是以她胜利告终。输赢不是关键,关键是两人都能高高兴兴。
我喜欢这样的日子,与喜欢的人一起做喜欢的事。今天好开心。