编程时要注意细节

  随着Struts2与WebWork的联袂,Struts1已经不再是人们追捧的对象了。不过,若要快速开发一个小型的Web应用,我还是推荐各位使用Struts1。因为无论是在开发速度、运行速度、资料、成熟度等各个方面,目前来看Struts1还是有自身的优势的。另外一个优势在于,几乎所有的j2ee开发者,或多或少都有Struts1的开发经验,有了这样的经验,在实现小型Web应用时,会更敏捷(敏捷不光是一味地追求开发速度,还要能够快速地应对变化。这不光是程序设计方面的问题,若你对所使用的框架非常了解,无疑将会对整个项目起来很积极的作用)。

  Tycho第一个版本的显示层就是使用的 Struts1 。虽然对 Struts 的学习和应用已经有些年头了,但在开发过程中,由于疏忽一个小细节操作不当出现许多问题。

  我所说的小细节,主要是在配置 struts-config.xml 文件时,代码前后矛盾引起的死循环提交。首先我们先来回顾一下Struts应用的传统的编写方式。
Continue Reading »

07-09-08 | 编程开发 | Permalink | No Comments |

Swing从丑小鸭到白天鹅

  虽然java在桌面开发方面提供了AWT和Swing,还有Eclipse的SWT。即使如此,也没能摆脱不能与VB、VC等语言在桌面编程上进行较量的尴尬处境。

  桌面开发一直是Java在不足的一个方面。由其是sun自己开发的图形包Swing,无论是在运行速度还是界面效果,都不能让人满意。不过,我还是经常用Swing开发一些程序,也用Swing做过一些项目。对Swing的前景还是很乐观的。果然,java5.0以后的版本,Swing在运行速度方面得到了明显的提升,完全不次于Windows提供的图形控件。而在界面美观性方面,由于Swing所特有的特点,大批爱好者们开发出很多开源的 Look and Feel,从而彻底改变了业界的看法。
Continue Reading »

07-09-06 | 编程开发 | Permalink | No Comments |

利用Velocity内核简化Ajax开发

  这两年火的东西有很多,在技术方面有Ajax、RoR,在开发方法方面有TDD、DDD、Agile等等。对于Web开发人员来说,没有用过或开发过Ajax很可能被人鄙视。呵呵~~这也许就是技术人吧。

  用Ajax开发最令人头痛的一件事即要写DOM。由于客户端调试不容易,加上各大浏览器标准不兼容,开发效率和出错几率可想而知。为了提高开发效率避免不必要的错误,很多朋友喜欢将原本客户端的程序写到服务器端,例如:
Continue Reading »

07-08-29 | 编程开发 | Permalink | No Comments |

利用jcaptcha生成自定义验证码

  jcaptcha是一个开源的用来生成图形验证码的Java开源组件,使用起来也是非常的简单方便。不过,很多网友抱怨该组件默认的图片比较大,影响网页的美观。由于代码过于简单,以至于找不到地方修改。由于tycho(我正在开发的程序)也需要利用该组件生成验证码,所以简单地研究了一下。发现 jcapthca是非常强大的,不光是可以生成图片式的验证码,还可以生成声音式的(新浪就使用了双重验证码)。大家可以到这里下载,并导入到你的工程。

  若要利用jcaptcha生成自定义样式的验证码,首先需要为其创建一个验证码引擎,或者说验证码方案类。如下:
Continue Reading »

07-08-28 | 编程开发 | Permalink | No Comments |

Struts2 下自定义 VelocityContext

  但凡使用过Velocity的人都会有这样的感觉,虽然它有几个内置的对象供我们使用(request、session、 application、attr等),但是,在开发过程中,仅这几个内置的对象并不能完全满足我们的需要。今天我们就要讲讲,在Struts2下面,如何扩展Velocity,自定义出我们的内置对象。
Continue Reading »

07-06-28 | 编程开发 | Permalink | No Comments |

struts2默认的拦截器为何会失效

  这几天一直没有更新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 »

07-05-17 | 编程开发 | Permalink | No Comments |

Java Web Start基本配置

  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 »

06-11-13 | 编程开发 | Permalink | No Comments |

利用URLClassLoader加载class到当前线程

  Java是利用ClassLoader将类载入内存的。在同一应用中,允许有很多个ClassLoader,通过委派机制,把装载的任务传递给上级的装载器的,依次类推,直到启动类装载器(没有上级类装载器)。如果启动类装载器能够装载这个类,那么它会首先装载。如果不能,则往下传递。当父类为null时,JVM内置的类(称为:bootstrap class loader)就会充当父类。想想眼下的越来越多用XML文件做配置文件或者是描述符、部署符。其实这些通过XML文档描述的配置信息最终都要变成Java类,基实都是通过ClassLoader来完成的。URLClassLoader是ClassLoader的子类,它用于从指向 JAR 文件和目录的 URL 的搜索路径加载类和资源。也就是说,通过URLClassLoader就可以加载指定jar中的class到内存中。下面来看一个例子,在该例子中,我们要完成的工作是利用URLClassLoader加载jar并运行其中的类的某个方法。首先我们定义一个接口,使所有继承它的类都必须实现action方法。如下:
Continue Reading »

06-08-25 | 编程开发 | Permalink | No Comments |

java克隆详述-下

  何为影子clone?先看一个例子。
Continue Reading »

04-09-01 | 编程开发 | Permalink | No Comments |

java克隆详述-上

  在今天的工作中,为了解决对象地址的问题,使用了java的clone。但发现有些同事竟然对clone很是不明白,甚至对"引用"(reference)也是一头雾水。这些都是java最基础的概念,也是最重要的,是我们在学习java时必须领会的。

经常听到有人说java中没有指针。事实如此吗?no,java是有指针的,只不过换了个名字而已,也就是我们经常提到的引用。我们知道,在java中一切都是对象,那么我们如何操控对象?如何在成千上万的对象中找到我们所需的那个对象呢?又是如何让对象按照我们的意思来完成任务的呢?
Continue Reading »

04-08-31 | 编程开发 | Permalink | No Comments |
Page 3 of 3123