傳智播客bbs項目,密碼MD5加密及日期轉換器

     今天繼續學習bbs項目,湯老師講了會員註冊的實現,要對密碼進行md5加密,日期型的屬性存入數據庫前要進行解析,如會員的生日,註冊日期等。還有要對用戶註冊信息進行服務器和客戶端驗證。下面介紹一下我在學習中遇到的比較重要的知識。

    昨天概述了一下md5加密算法,MessageDigest實例對象的digest方法產生數字摘要是一個字節數組,我們應該將這個字節數組轉換爲16進制的字符串,再存入數據庫。具體實現如下:
              //獲得md5算法的MessageDigest實例對象,
        public static String digest(String str){
                 MessageDigest md = MessageDigest.getInstance("MD5");
   //傳入要進行數字摘要運算的數據源
   md.update(str.getBytes("utf-8"));
   //得到數字摘要字節數組
   byte[] buf = md.digest();
   //得到16進制的字符串
   StringBuffer hexString = new StringBuffer();
   for (byte b : buf) {
           //如果大於00001111,則直接添加其轉換後的字符串
    if ((b & 0xff) > 0xf) {
     hexString.append(Integer.toHexString(0xff & b));
        //先添加個“0”,再添加其轉換後的字符串
    } else {
     hexString.append("0").append(Integer.toHexString(0xff & b));
    }
   }

   return hexString.toString();
    }

     

   日期轉換器: 

      simpleDateFormat 的format() 和parse方法,分別用於日期/時間的格式化和解析。format方法將日期/時間對象格式化爲符合某個本地環境的字符串,parse方法將符合某個本地環境的日期/時間字符串解析爲日期/時間對象。
         寫一個日期轉換器,在日期型和字符串型之間轉換,
1,寫一個實現org.apache.commons.beanutils.Converter的日期轉換器類DateConverter類 ,按一定格式把字符串型的日期解析成Date型的,
public class ActionFormDateConverter implements Converter {
 private static final Log log = LogFactory.getLog(ActionFormDateConverter.class);
 private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

 @SuppressWarnings("unchecked")
 public Object convert(Class clazz, Object value) {
  if (value == null) {
   return null;
  }

  String source = (String) value;
  try {
   return new ActionFormDate(sdf.parse(source));
  } catch (ParseException e) {
   log.debug(e.getMessage());
   return null;
  }
 }

}
2,寫一個ActionFormDate類,它繼承Date類,用於定義要進行解析的屬性。
public class ActionFormDate extends Date {
 private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

 public ActionFormDate() {
 }

 public ActionFormDate(Date date) {
  super(date.getTime());
 }

 @Override
 public String toString() {
  return sdf.format(this);
 }
}
3,寫一個Servlet,把轉換器類註冊進org.apache.commons.beanutils.ConvertUtils

ConvertUtils.register(new ActionFormDateConverter(), ActionFormDate.class);

4,在web.xml文件中註冊第3步寫的servlet。
5,這樣就可以在formbean中用ActionFormDate定義要進行解析的日期行屬性了。

 

   有文件上傳時。 jsp頁面的表單<form>中要添加屬性enctype="multipart/form-data"。


   對上傳圖片進行存儲,要使用org.apache.struts.upload.FormFile類,它有一個getFileData()方法可以讀取瀏覽器端上傳數據的字節數組。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章