|
博客首页 » 最新文章
发表于09-06-25 14:10 | 阅读 2327 |
评分 (暂无)
使用J2EE Web开发已经好几年了,从JSP、Struts、WebWork到现在的Struts 2、Wicket,没有一个用起来简单顺手的。 无论哪个框架吹嘘自己有多么简单和高效的生产力,甚至让一个从未接触过Web开发的人5分钟能上手,绝对是骗人的。照着教程做一个Hello World还可以,一旦网站规模一大,根本无法维护。 再深入挖掘一下,你会发现,其实一个MVC框架无论服务器端设计有多么差,其实也差不到哪去,有面向对象经验的开发人员都可以写出比较能维护的代码,即便像Struts这种比较古老的框架,服务器端开发也不难,和WebWork2比仅仅是不方便而已。 但是到了View这一层就五花八门了,总体来说,有以下几路主流门派: 1. 以Struts为代表的JSP + Tag派,真叫一个难用,尤其是Tag,不但要查手册,你还必须写出if equals ... else的逻辑来。 2. 以JSF为代表的全Tag派,基本上写一个JSP和 ...
发表于09-06-19 13:50 | 阅读 993 |
评分 (暂无)
开始研究Python,写个快速排序算法练练手: ''' qsort.py
Quick sort
Created on Jun 18, 2009
@author: Liao '''
from random import Random
def quick_sort(arr): if len(arr) > 1: qsort(arr, 0, len(arr) - 1)
def qsort(arr, start, end): &nbs ...
发表于09-03-16 11:10 | 阅读 1200 |
评分 (暂无)
装了Vista Ultimate,发现比XP居然还快,尤其是IE 7,比XP快很多
发表于09-02-17 14:44 | 阅读 1828 |
评分 (暂无)
从Amazon的示例代码摘出来,整理如下: /** * @param data 待加密的数据 * @param key 加密使用的key * @return Base64编码的String */ String getHmacSha1(byte[]data, byte[] key) { SecretKeySpec signingKey = new SecretKeySpec(key, "HmacSHA1"); Mac mac = null; try { ...
发表于09-01-03 10:17 | 阅读 1778 |
1人对此综合评价
安装Linux时,如果将GRUB安装在主引导扇区,则可以正常引导Linux和Windows XP,但同时也破坏了原Windows的主引导信息。当删除Linux后,GRUB无法正常引导(GRUB需要读取Linux的/boot信息,但此时已不存在),此时,可以通过Windows XP的安装光盘恢复。 用XP安装盘启动后,选择R进入修复模式,输入管理员口令后,可以使用命令fixmbr修复主引导扇区的信息,然后重启,自动进入到Windows XP的启动菜单。 此法同样可用于Windows 2000 / 2003 / Vista等。
发表于08-12-12 12:49 | 阅读 846 |
评分 (暂无)
用WTK 2.5开发MIDP应用时,自己写了个冒泡排序,模拟器运行正常,真机上报NoClassDefFoundError,原来是没有java.lang.Comparable这个接口,但是WTK编译居然通过了!校验器也没验出任何问题。 解决办法: 自定义一个IsComparable接口,将要排序的类实现此接口。 附: public static void sort(Vector v) { int size = v.size(); for (int i=0; i<size; i++) { for (int j=i+1; j<size; j++) { IsCompara ...
发表于08-11-26 13:12 | 阅读 3224 |
2人对此综合评价
Linux邮件服务器通常使用sendmail,在网上google了sendmail的教程后,我决定知难而退,改用Postfix。 Postfix是用来替代sendmail的,它的配置文件比sendmail简单得多,配置相当容易。 在配置邮件服务器之前,先解释几个概念。 我们通常使用Email都很容易,但是Internet的邮件系统是通过几个复杂的部分连接而成的,对于最终用户而言,我们熟悉的Outlook,Foxmail等都是用来收信和发信的,称之为MUA:Mail User Agent,邮件用户代理。 MUA并非直接将邮件发送至收件人手中,而是通过MTA:Mail Transfer Agent,邮件传输代理代为传递,sendmail和Postfix就是扮演MTA的角色。 一封邮件从MUA发出后,可能通过一个或多个MTA传递,最终到达MDA:Mail Delivery Agent,邮件投递代理,邮件到达MDA后,就存放在某个文件或特殊的数据库里,我们将这个长期保存邮件的地 ...
发表于08-11-10 14:23 | 阅读 1878 |
评分 (暂无)
一个简单封装Hibernate的一个Util类,用于初始化Hibernate,获取当前SessionFactory(必须绑定到Thread),Java 5类型安全查询以及不定参数查询,如: Article a = HibernateUtil.query(Article.class, "id"); List<Article> list = HibernateUtil.queryForLimitedList("select a from Article a where a.time<? and a.author=?", 20, param1, param2); 适用范围:DAO内部调用
package com.javaeedev.hibernate; import ja ...
发表于08-10-29 12:47 | 阅读 2122 |
1人对此综合评价
使用Ext GWT时会发现在FireFox和Google Chrome中,部分中文字体偏小,可通过修改CSS来解决。 可以直接将ext-all.css中所有font-size为11px的改为12px,当然为了不影响Ext GWT,可以再创建一个ext-patch.css,将11px的字体覆盖为12px:
/* CSS Document */ .ext-el-mask-msg div{font-size:12px;} .loading-indicator{font-size:12px;} .x-tab-strip span.x-tab-strip-text{font-size:12px;} .x-form-invalid-msg{font-size:12px;} .x-small-editor .x-form-field{font-size:12px;} .x-fieldset legend{fon ...
发表于08-07-02 12:05 | 阅读 1317 |
评分 (暂无)
用过超级牛牛无敌在线盯盘专家吗? http://www.googlook.net/stock/Stock.html
发表于08-04-28 14:13 | 阅读 7107 |
2人对此综合评价
在Tomcat 6中配置SSL双向认证是相当容易的,本文将介绍如何使用JDK的keytool来为Tomcat配置双向SSL认证。
系统需求:
JDK 5.0 Tomcat 6.0.16
第一步:为服务器生成证书
使用keytool为Tomcat生成证书,假定目标机器的域名是“localhost”,keystore文件存放在“C:\tomcat.keystore”,口令为“password”,使用如下命令生成:
如果Tomcat所在服务器的域名不是“localhost”,应改为对应的域名,如“www.sina.com.cn”,否则浏览器会弹出警告窗口,提示用户证书与所在域不匹配。在本地做开发测试时,应填入“localhost”
第二步:为客户端生成证书
下一步是为浏览器生成证书,以便让服务器来验证它。为了能将证书顺利导入至IE和Firefox,证书格式应该是PKCS12,因此,使用如下命令生成:< ...
发表于08-04-17 12:11 | 阅读 3362 |
2人对此综合评价
近期整理的Java PDF文档下载 [Java] 细说Java之常用集合类 Java源码分析:深入探讨Iterator模式 深入Java的IO体系 - Decorator模式的应用分析 利用反射实现JavaBean的自动赋值 [J2EE] 使用Mock对象使单元测试更加容易 对DAO编写单元测试 使用FileUpload组件上传文件 使用Servlet动态生成图片 Spring AOP入门 将ReadWriteLock应用于缓存设计 走进JBoss 使用NetBeans开发Java EE 5“Hello world”应用程序 Tomcat双向SSL认证的配置 [J2ME] J2ME概念解析 J2ME 3D技术简介 一个拼图游戏的开发 J2ME最佳实践
发表于08-04-07 09:50 | 阅读 1632 |
1人对此综合评价
随着Web 2.0应用的日益普及,如今的Web早已从独立的Web Site变为可交互的Web Application。越来越多的Web 2.0应用开始开放API,并欢迎其他Web应用程序集成进来以便为用户提供更紧密的服务。Google,Yahoo之类的网络巨头早已提供了各式各样的众多的API让Web Application能调用之。而Facebook更是独辟蹊径,提出了Web Platform的概念,大胆地将自己打造为一个Web平台,让其他Web Application直接运行在Facebook的平台之上。成千上万的Web Application开始为Facebook编写应用,以便能让庞大的Facebook用户直接访问自己的Application,从而带来显著的流量提升。虽然目前中文网站还不能直接从Facebook受益,然而Web Application的集成已是大势所趋。本文以如何将一个Web计算器(http://www.googlook.net/samples/calcula ...
发表于08-03-04 10:25 | 阅读 1827 |
1人对此综合评价
在Eclipse中,只需随时按住Ctrl并点击某个类名或方法名,即可跳转到相应的代码中。然而,如果引用一个开源的jar包,则会直接打开其class的二进制码,这对于调试或研究代码内部流程颇为不便,尽管可以在Build Path中为每个jar指定源代码位置,但这样一来,对于同一个jar(例如spring.jar),每个工程都要指定,比较麻烦。 另一种更简单的方式是直接用WinZip或WinRAR之类的工具解开jar,再把源码也放进去,注意路径要正确,同一个Xxx.class和Xxx.java应该在同一目录下,再用zip打包成jar包(jar格式其实就是zip格式),以后无论在哪个工程引用该jar包,Eclipse都可以直接从jar包中读出其对应的源代码,不必在Build Path中配置源代码位置,对于开源组件来说,大大方便了代码的跟踪和测试。
发表于08-01-08 08:14 | 阅读 3404 |
4人对此综合评价
Lucene是Java领域最出色的全文搜索引擎,然而其API比较复杂,并且有严格的线程同步模型,直接使用不易。Compass则是封装了Lucene的一个OSEM:Object-SearchEngine Mapping,与Hibernate封装JDBC类似,然而过于复杂,支持的Lucene版本较低,因此决定自行开发一个类似Compass的简单封装Lucene的全文搜索框架,支持最新版本Lucene和Java 5泛型代码,用户通过简单的代码即可对自定义Bean进行搜索: List<T> list = Searcher.search(Class<T>, String q, Page page); 下载地址: http://code.google.com/p/lightweight-search/downloads/list
发表于08-01-02 18:02 | 阅读 1868 |
1人对此综合评价
Spring 2.5提供了自动在当前ClassPath搜索被标注有特定注解的类,这个特性非常有用,跟踪了一下源码,发现其实核心代码就是利用ClassLoader的方法: public Enumeration<URL> getResources(String name) 于是自己动手,也写了一个能在ClassPath下搜索特定类的Scanner: package com.javaeedev.util; import java.io.File; import java.io.IOException; import java.net.URL; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.jar.JarEntry;
发表于07-11-27 17:00 | 阅读 2286 |
1人对此综合评价
由于MVC框架的设计,必须保证配置IoC容器时指定正确的Scope,否则无法正常工作: 用户定义的所有的Action类必须是Prototype域,即Guice默认的作用域,如果定义为Singleton会导致并发请求的数据混乱; 用户定义的所有的Interceptor,ViewResolver和ExceptionResolver应该是Singleton的,MVC框架会保持其引用,即时定义为Prototype也是无效的。 在实现Interceptor时需要注意,如果要继续处理请求,就必须调用 chain.doInterceptor(action); 否则请求不会被继续处理。多个Interceptor的排列顺序很重要,用@Order指定,小的在前,即优先级高。 下面是几个简单的示例: 一个处理事务的Interceptor,能保证每个Action的执行都在事务范围内: package com.javaeedev.lightweight.mvc.sample; @Singleton @Or ...
发表于07-11-22 16:27 | 阅读 2091 |
评分 (暂无)
Subversion是新一代的开源版本控制系统,和CVS相比,Subversion最大的特点是支持事务,可以确保一个提交是原子操作。此外,Subversion还支持更多的协议,包括HTTP访问。在Eclipse中,使用Subverison和CVS一样简单,只需安装Subclipse插件就可以了。 本文以Eclipse 3.3为例,安装Subclipse非常容易,打开Eclipse,选择菜单Help->Software Updates->Find and Install…,在弹出的对话框中选择“Search for new features to install”,然后点击“New Remote Site…”,填入Subclipse的在线安装的URL:
按照提示安装完毕后,我们就可以打开Subversion的资源库了。选择Eclipse菜单Window->Show View->Other…, ...
发表于07-11-21 16:33 | 阅读 2760 |
1人对此综合评价
在设计完API后,我们就需要实现这个MVC框架。MVC框架的核心是一个DispatcherServlet,用于接收所有的HTTP请求,并根据URL选择合适的Action对其进行处理。在这里,和Struts不同的是,所有的组件均被IoC容器管理,因此,DispatcherServlet需要实例化并持有Guice IoC容器,此外,DispatcherServlet还需要保存URL映射和Action的对应关系,一个Interceptor拦截器链,一个ExceptionResolver处理异常。DispatcherServlet定义如下: package com.javaeedev.lightweight.mvc; /** * Core dispatcher servlet. * * @author Xuefeng */ public class DispatcherServlet extends&n ...
发表于07-11-20 16:42 | 阅读 5229 |
1人对此综合评价
前段时间准备做一个小网站,但是又不想用Spring/Struts/WebWork这样的大块头,因此决定自己写一个MVC框架。花了3天左右时间完成,目前运行良好,整个MVC框架仅21KB,感兴趣的朋友可以从http://code.google.com/p/lightweight-mvc/downloads/list下载完整的源代码和jar包。 设计目标: 一个最简单最小巧的MVC框架,花哨的功能一个不要,越简洁越好,并且不使用XML配置文件,而是完全用Java 5注解配置。 功能列表: 组件必须用IoC配置; 处理HTTP请求的Action,类似WebWork每个请求都生成一个新实例,并自动填充属性; 类似Filter的Interceptor机制,但是在IoC容器中配置; 统一的异常处理; 多视图支持。 由于组件需要用IoC容器配置,因此,第一步就是寻找小巧的IoC容器,Google Guice是一个很不错的选择,并且完全用Java 5注解配置组件。这个MVC框架唯一依 ...
|