登錄案例之添加驗(yàn)證碼案例分析
在
HttpSession第二例中,我們完成一個(gè)案例Example22,該案例完成了登錄功能?,F(xiàn)在在Example22工程原有功能的基礎(chǔ)上為其添加一個(gè)新的功能:驗(yàn)證碼,即表示,用戶在登錄的時(shí)候不僅要輸入用戶名和密碼,還要輸入驗(yàn)證碼;用戶名、密碼和驗(yàn)證碼都正確的情況下才能登錄成功。下面我們來(lái)分析如何實(shí)現(xiàn)以上功能。
首先,我們來(lái)了解該功能的流程,如圖1-1所示:
圖1-1 功能分析
由圖1-1可知,當(dāng)在瀏覽器端訪問(wèn)login.jsp頁(yè)面,瀏覽器發(fā)送了兩次請(qǐng)求,分別是:
- 第一個(gè)請(qǐng)求:請(qǐng)求的是login.jsp;
- 第二個(gè)請(qǐng)求:請(qǐng)求的是VerifyCodeServlet;
VerifyCodeServlet要完成以下三個(gè)任務(wù):
- 生成驗(yàn)證碼圖片;
- 將驗(yàn)證碼圖片中的驗(yàn)證碼保存在session域中;
- 將驗(yàn)證碼圖片寫(xiě)到響應(yīng)流中,響應(yīng)給客戶端;
在頁(yè)面中輸入用戶名,密碼和驗(yàn)證碼,然后點(diǎn)擊“登錄”。這時(shí)瀏覽器訪問(wèn)的是LoginServlet。
LoginServlet要做的工作如下所示:
- 獲取請(qǐng)求參數(shù):用戶名、密碼以及驗(yàn)證碼;
- 從session域中獲取正確的驗(yàn)證碼,然后與用戶輸入的驗(yàn)證碼進(jìn)行對(duì)比,如果一致,繼續(xù)比較用戶名和密碼是否正確,否則保存錯(cuò)誤信息在request域中,然后轉(zhuǎn)發(fā)到login.jsp頁(yè)面。
本文版權(quán)歸傳智播客Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客Java培訓(xùn)學(xué)院
首發(fā):http://m.xamj520.com/javaee