亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

圖形認證碼技術的JSP實現

2024-09-05 00:19:13
字體:
來源:轉載
供稿:網友

 實現認證碼技術,需要以下幾方面的準備:

  1.生成認證碼:

  我們可以讓系統隨機產生一個數字來作為認證碼,這方面在javascript腳本語言和java語言中均可得以實現。前者可以用math.random()得到一個介于0與1之間的小數,用它乘以10000再取整數部分,即可得到0至9999之間的隨機數。后者可以用random類的nextint(n)方法得到一個介于0至n-1之間的隨機類。

  在實現時,我們采用了前者,即用javascript生成的隨機數作為認證碼。主要原因是javascript是html內置的腳本語言,不管頁面是前進、后退還是刷新,都能保證及時產生新的認證碼,增加了隨機性。而用java實現時,則不具備此特性,瀏覽器還保存原先的認證碼,隨機性不強。

  2.生成認證碼圖象:

  這是比較關鍵的部分。幸運的是,java語言給我們提供了強大的支持。我們可以利用bufferedimage類在內存中繪制圖象,并可利用imageio類將圖象輸出到jsp頁面中。在繪制圖象時,我們就可以將隨機產生的認證碼,繪制到圖象中,進而展現在用戶面前。另,為了增加破譯的難度,我們可以隨機畫一些點。

  3.保存認證碼:

  在jsp語言中,我們可以充分利用該語言內置的session對象來保存認證碼之值,方法是:session.setattribute("認證碼名字",認證碼之值)。并可用session.getattribute("認證碼名字")得到系統保存的認證碼之值,用來和用戶輸入的認證碼相比較,很是方便。

  三、認證碼技術的jsp實現

  1.image.jsp

  這個jsp程序的功能是:根據頁面參數rand生成相應的認證碼圖象,同時設定session變量rand,以便check.jsp驗證用戶輸入的認證碼時使用。

  源程序如下:
<%@ page contenttype="image/jpeg" import="java.awt.*,
java.awt.image.*,java.util.*,javax.imageio.*" %>
<%
// 在內存中創建圖象
int width=60, height=20;
bufferedimage image = new bufferedimage(width, height,
bufferedimage.type_int_rgb);

// 獲取圖形上下文
graphics g = image.getgraphics();

// 設定背景色
g.setcolor(color.white);
g.fillrect(0, 0, width, height);

//畫邊框
g.setcolor(color.black);
g.drawrect(0,0,width-1,height-1);

// 取隨機產生的認證碼(4位數字)
string rand = request.getparameter("rand");
rand = rand.substring(0,rand.indexof("."));
switch(rand.length())
{
case 1: rand = "000"+rand; break;
case 2: rand = "00"+rand; break;
case 3: rand = "0"+rand; break;
default: rand = rand.substring(0,4); break;
}

// 將認證碼存入session
session.setattribute("rand",rand);

// 將認證碼顯示到圖象中
g.setcolor(color.black);
g.setfont(new font("times new roman",font.plain,18));
g.drawstring(rand,10,15);

// 隨機產生88個干擾點,使圖象中的認證碼不易被其它程序探測到
random random = new random();
for (int i=0;i<88;i++)
{
int x = random.nextint(width);
int y = random.nextint(height);
g.drawline(x,y,x,y);
}

// 圖象生效
g.dispose();

// 輸出圖象到頁面
imageio.write(image, "jpeg", response.getoutputstream());

%>
2.a.jsp

  這個jsp程序的功能是:顯示認證碼,提供表單讓用戶輸入認證碼供校驗用。注意,程序中顯示認證碼圖象時,用了javascript的document.write,并用了math.random函數,從而保證了認證碼的及時更新特性。

  源程序如下:
<%@ page contenttype="text/html;charset=gb2312" %>
<!doctype html public "-//w3c//dtd html 4.01 transitional//en">
<html>
<head>
<title>認證碼輸入頁面</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<form method=post action="check.jsp">
<table>
<tr>
<td align=left>系統產生的認證碼:</td>
<td><script>document.write("<img border=0 src=image.jsp?
rand="+math.random()*10000+">");</script></td>
</tr>
<tr>
<td align=left>輸入上面的認證碼:</td>
<td><input type=text name=rand maxlength=4 value=""></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value="提交檢測"></td>
</tr>
</form>
</body>
</html>

3.check.jsp

  這個jsp程序的作用是比較用戶輸入的認證碼與session變量中保存的認證碼,相同時提示認證成功,否則提示認證失敗。

  源程序如下:

<%@ page contenttype="text/html; charset=gb2312" language="java"
import="java.sql.*" errorpage="" %>
<html>
<head>
<title>認證碼驗證頁面</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>

<body>
<%
string rand = (string)session.getattribute("rand");
string input = request.getparameter("rand");
%>
系統產生的認證碼為: <%= rand %><br>
您輸入的認證碼為: <%= input %><br>
<br>
<%
  if (rand.equals(input)) {
%>
<font color=green>輸入相同,認證成功!</font>
<%
  } else {
%>
<font color=red>輸入不同,認證失??!</font>
<%
  }
%>
</body>
</html>


 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美电影在线观看完整版| 久久久av一区| 久久男人资源视频| 91精品国产九九九久久久亚洲| 中文字幕精品av| 不卡av电影在线观看| 亚洲女在线观看| 在线丨暗呦小u女国产精品| 久久久久久久久久亚洲| 日韩精品中文字| 国产精品日韩av| 亚洲欧美自拍一区| 日韩一区二区在线视频| 国产成人精彩在线视频九色| 日韩成人小视频| 亚洲国产91色在线| 日韩电影中文字幕在线观看| 亚洲国产精品久久久| 欧美成人精品不卡视频在线观看| 久久视频这里只有精品| 欧美黄色片免费观看| 91网站免费观看| 日韩视频在线免费观看| 性欧美xxxx视频在线观看| 亚洲精品97久久| 97免费视频在线| 一区二区三区无码高清视频| 精品久久香蕉国产线看观看gif| 成人性生交xxxxx网站| 热久久免费国产视频| 久久精品色欧美aⅴ一区二区| 精品久久香蕉国产线看观看gif| 午夜精品一区二区三区视频免费看| 亚洲国产欧美一区| 国产日韩欧美影视| 精品福利在线视频| 久久人91精品久久久久久不卡| 日韩中文在线中文网在线观看| 北条麻妃在线一区二区| 在线观看日韩专区| 在线视频欧美日韩精品| 久久久久久久久久久亚洲| 97激碰免费视频| 岛国av在线不卡| 亚洲精品美女久久久| 中文字幕亚洲精品| 欧美国产欧美亚洲国产日韩mv天天看完整| 在线观看国产欧美| 日本高清不卡在线| 92看片淫黄大片看国产片| 亚洲第一av在线| 久久久久久久一区二区| 在线观看中文字幕亚洲| 亚洲精品久久久一区二区三区| 亚洲va码欧洲m码| 亚洲最新av在线| 日韩免费观看高清| 欧美黑人国产人伦爽爽爽| 亚洲一区二区久久久久久久| 97视频免费在线看| 亚洲欧洲第一视频| 国产精品无av码在线观看| 欧美丝袜一区二区三区| 欧美黑人巨大精品一区二区| 精品无人区太爽高潮在线播放| 狠狠色噜噜狠狠狠狠97| 欧美一级成年大片在线观看| 亚洲精品综合久久中文字幕| 中文字幕亚洲字幕| 日韩电影免费观看在线| 久久国产精品久久国产精品| 欧美一区二区三区免费观看| 亚洲品质视频自拍网| 最新国产精品拍自在线播放| 中文字幕免费精品一区| 亚洲精品短视频| 成人免费观看a| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲人永久免费| 国产精品第1页| 日韩精品在线免费播放| 日韩国产欧美精品在线| 国产精品私拍pans大尺度在线| 欧美日韩国产限制| 国产在线日韩在线| 91精品久久久久久久久久久| 91豆花精品一区| 久久人人爽亚洲精品天堂| 美女撒尿一区二区三区| 精品人伦一区二区三区蜜桃网站| 欧美激情精品久久久久久蜜臀| 国产精品久久久久高潮| 国产精品激情av电影在线观看| 亚洲美女又黄又爽在线观看| 国产欧美婷婷中文| 日韩中文字幕在线观看| 日韩大片免费观看视频播放| 国产精品黄色影片导航在线观看| 国产日韩欧美在线看| 欧美一级电影免费在线观看| 日韩中文字幕在线免费观看| 亚洲直播在线一区| 欧美国产亚洲精品久久久8v| 国产精品久久久久国产a级| 国产精品精品视频一区二区三区| 欧美激情视频在线观看| 中文字幕日韩欧美在线视频| 欧美性猛交xxxxx水多| 国产精品99久久99久久久二8| 欧美黑人狂野猛交老妇| 国产精品久久久| 91av视频在线| 亚洲一区二区三区在线免费观看| 久久精品国亚洲| 日韩天堂在线视频| 久操成人在线视频| 国产精品电影网| 欧美亚洲另类视频| 久久色免费在线视频| 国产精品美女av| 亚洲成人黄色网| 亚洲国产91精品在线观看| 成人性生交大片免费看视频直播| 亚洲第一福利网| 国产精品女视频| 蜜臀久久99精品久久久无需会员| 日韩精品久久久久| 日韩有码视频在线| 亚洲精品suv精品一区二区| 亚洲a区在线视频| 亚洲视频电影图片偷拍一区| 欧美野外wwwxxx| 国产精品免费一区豆花| www.日韩.com| 日韩精品免费在线播放| 欧美美女操人视频| www.99久久热国产日韩欧美.com| 国产精品久久久久久久久借妻| 亚洲免费视频一区二区| 色午夜这里只有精品| 成人做爰www免费看视频网站| 亚洲精品永久免费精品| 日韩av网址在线观看| 亚洲精品美女久久| 国产免费成人av| 国产精品精品久久久久久| 国产精品视频在线观看| 国产成人精品久久| 欧美精品第一页在线播放| 欧美限制级电影在线观看| 久久人人爽人人| 日本一区二区三区四区视频| 中文字幕国产精品| 亚洲综合自拍一区| 亚洲成人三级在线| 国产网站欧美日韩免费精品在线观看| 亚洲天堂av在线播放| 成人欧美一区二区三区黑人孕妇| 在线播放日韩欧美| 欧美日韩一区二区免费视频| 欧美激情一区二区三区在线视频观看| 激情成人中文字幕| 亚洲国内高清视频| 色哟哟入口国产精品|