在沒接觸過驗證碼之前,很多人都以爲驗證碼是一張靜態圖片,
然而並不是,驗證碼是代碼生成的一串由大小寫字母和數字組成的字符串,圖片只是存放字符串的容器。
我們可以想象一下,如果驗證碼是一張靜態的圖片,那麼就需要在項目中存放大量驗證碼圖片,我相信應該沒有人會這麼做,因爲這樣做會導致項目運行變慢,用戶的等待時間過長,體驗感差等一系列問題。
其實我們添加驗證碼就是爲了儘量妨礙網絡上某些腳本瘋狂測試用戶的賬號密碼,隨意登錄用戶的賬號,進行某些修改,所以一般我們設置驗證碼的長度爲5位左右,也不會設置非常難的字符串,因爲驗證碼是爲了防機器的,而不是爲了防人的,若是連人都防了,那麼這個項目就玩完了
當然驗證碼一開始一次就只生成一張,之後的生成,需要在用戶點擊刷新頁面,或者切換圖片時,纔會再次生成,所以,爲了用戶有良好的體驗感,我們會添加一個刷新圖標並在驗證碼圖片上添加切換事件,方便用戶刷新驗證碼
驗證碼的生成步驟:
1.調用一個方法,用於生成隨機字符串
2.再調用一個根據生成的字符串生成驗證圖片的方法
3.將生成的驗證碼字符串保存到Session中(用於登錄時驗證是否輸入正確)
4.最後將驗證圖片返回到頁面
因方便查找,所以將生成字符串和生成驗證圖片的方法存放到了另一個類中
類名ValidCodeUtils,所以具體生成驗證碼的方法,如圖:
提示:如果用戶輸入驗證碼不正確,就應該設置刷新一下驗證碼,再清空舊的驗證碼
注:本文爲本人的不成熟理解,可參照,不可完全相信
初來乍到,請多多指教,大神勿噴。