快速业务通道

SpringSide开发实战(五):兵马未动,粮草先行 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

SpringSide开发实战(五):兵马未动,粮草先行

时间:2011-05-07 blogjava 海边沫沫

本篇讨论的问题是对项目中遇到的难题进行技术穿刺。

做过项目的人都知道,在构思完一个项目的功能之后,紧接着的事情就是考虑这些构思 的功能如何实现,对于自己不熟悉的领域,要进行技术穿刺。我的穿刺方法为先查找有无比 较好的开源组件可用,如果没有,就查找相关的文档,自己编写和测试代码。

在这一篇,我主要解决三个问题。

1、解决字符串加密的问题,在前面一篇中,我们设计用户模块的时候,准备将用户的密 码字段以MD5加密的方式保存,因此,这里需要写一个对字符串加密生成MD5字符串的方法;

2、解决生成图像缩略图和生成验证码的问题;

3、解决url重写的问题,之所以要用到url重写,主要是为了让用户在访问自己的主页时 ,可以使用http://www.xkland.com/username或者http://username.xkland.com这样的形式 ,而不是像http://www.xkland.com/index.jsp?username=xxx这样难看的形式。

需要说明的是,要解决上面的三个问题,不是没有开源的东西可用,而是我觉得每次都 要整合不同的组件是在是太麻烦,而我们需要的功能也不是很复杂,我们不需要太通用的东 西,只要能够解决这里特定的问题就行了,因此不如自己动手实现,同时还可以获得技术上 的提高。

首先来看看MD5加密的问题,JDK中本来提供有数据加密的支持,其中 java.security.MessageDigest类就可以实现MD5的加密,但是,加密后生成的数据是byte[] 类型的,这里只需要写一个方法将它转换为字符串就行,代码如下:

package com.xkland.util; import java.security.MessageDigest; import java.lang.NullPointerException; import java.security.NoSuchAlgorithmException; public  class StringUtil  {   public  static  char [] num_chars =  new  char [] { '' 0 '' ,   '' 1 '' , '' 2 '' , '' 3 '' , '' 4 '' , '' 5 '' , '' 6 '' , '' 7 '' , '' 8 '' ,   '' 9 '' , '' A '' , '' B '' , '' C '' , '' D '' , '' E '' , '' F '' } ;   public  static String toMD5String(String input)   throws NullPointerException,NoSuchAlgorithmException {   if (input ==  null ) throw  new NullPointerException();   char [] output =  new  char [ 32 ];   MessageDigest md = MessageDigest.getInstance( " MD5 " );   byte [] by = md.digest(input.getBytes());   for ( int i = 0 ;i < by.length;i ++ ) {   output[ 2 * i] = num_chars[ (by[i] &  0xf0 ) >>  4 ];   output[ 2 * i + 1 ] = num_chars[ by[i] &  0xf ];   }   return  new String(output); } }

SpringSide开发实战(五):兵马未动,粮草先行(2)

时间:2011-05-07 blogjava 海边沫沫

下面是它的测试用例:

package com.xkland.util; import junit.framework.TestCase; public  class StringUtilTest extends TestCase  {   public  void testToMD5String()  {   try {   System.out.println(StringUtil.toMD5String( " abc " ));   } catch (Exception e) {   } } }

运行测试用例,输出结果为:

900150983CD24FB0D6963F7D28E17F72

再来说说关于图像缩略图生成的问题,我准备将它设置为一个可以让Spring管理的类, 简单的说,可以利用Spring的配置文件来设置该类的一些属性,比如原图像保存的目录和目 标图像保存的目录,生成的缩略图的大小,生成缩略图的方式。这里特别需要说明的就是这 个生成缩略图的方式,我们即可以指定它只简单的执行缩放,也可以

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号