Posted on 2010-04-28 09:57
帥子 閱讀(554)
評論(0) 編輯 收藏 所屬分類:
J2EE技術專區
對驗證碼的使用分為兩個部分,分別為驗證碼的調用和驗證過程,以下分別做說明介紹。
???三、在JSP中調用驗證碼
?????????? 使用驗證碼直接在圖片處調用產生驗證碼的JSP文件即可,同時在刷新驗證碼按鈕處的js代碼中使用JSP驗證碼文件,頁面源碼如下。
<
form
id
=
"dForm"
method
=
post
action
=
"val.jsp"
>
<
ul
class
=
"sFrm"
>
<
li
><
b
></
b
><
img
id
=
"code"
border
=
0
src
=
"Num.jsp"
/><
input
type
=
"button"
value
=
"
看不清,換一張
"
onClick
=
"document.getElementById('code').src='ColorChinese.jsp'"
><
div
class
=
"clear0"
></
div
></
li
>
<
li
><
b
>
驗證碼
</
b
><
input
type
=
"text"
name
=
"input"
maxlength
=
8
value
=
""?
styleClass
=
"sIpt itemFm"
><
div
class
=
"clear0"
></
div
></
li
>
<
li
class
=
"bar"
><
b
></
b
><
input
type
=
"submit"
value
=
"
驗證測試
"?
styleClass
=
"logbtn3"
></
li
>
</
ul
>
</
form
>
?
???四、在JSP中驗證碼的驗證過程以及中文亂碼處理
????????????獲取用戶輸入的驗證碼并與Session中的驗證碼比較,相同即通過,否則拒絕,對于JSP中中文驗證碼的處理注意要在頁面中定義JSP頁面編碼跟獲取Session的字符編碼一致,此處使用的是統一的GB2312編碼,否則將出現驗證碼無法成功驗證的情況。
??
val.jsp
<%@ page language="java" pageEncoding="GB2312" %>
<%????request.setCharacterEncoding("gb2312");
????//獲取Session會話中緩存的驗證碼
??? String rand = (String)session.getAttribute("rand");
????//獲取用戶輸入的驗證碼
????String input = request.getParameter("input");???
??? if(rand==null||input==null)
??? {
???????//無輸入驗證碼處理代碼
??? }??? if (rand.equals(input)) {
???????//驗證碼對比成功
??? }??? else
??? {
????? ?//驗證碼失敗處理代碼
??? }
%>?