花看半開,酒飲微醉
隨機驗證碼
隨機驗證碼程序
import
java.awt.Color;
import
java.awt.Font;
import
java.awt.Graphics;
import
java.awt.image.BufferedImage;
import
java.io.IOException;
import
java.util.Random;
import
javax.servlet.Servlet;
import
javax.servlet.ServletException;
import
javax.servlet.http.HttpServlet;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
/** */
/**
*
@version
1.0
*
@author
baiyf
*/
public
class
ValidateImg
extends
HttpServlet
implements
Servlet
{
public
Color getRandColor(
int
fc,
int
bc)
{
Random random
=
new
Random();
if
(fc
>
255
)
fc
=
255
;
if
(bc
>
255
)
bc
=
255
;
int
r
=
fc
+
random.nextInt(bc
-
fc);
int
g
=
fc
+
random.nextInt(bc
-
fc);
int
b
=
fc
+
random.nextInt(bc
-
fc);
return
new
Color(r, g, b);
}
/** */
/**
*
@see
javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public
void
doGet(HttpServletRequest req, HttpServletResponse resp)
throws
ServletException, IOException
{
doPost(req, resp);
}
/** */
/**
*
@see
javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public
void
doPost(HttpServletRequest req, HttpServletResponse resp)
throws
ServletException, IOException
{
resp.setHeader(
"
Pragma
"
,
"
No-cache
"
);
resp.setHeader(
"
Cache-Control
"
,
"
no-cache
"
);
resp.setDateHeader(
"
Expires
"
,
0
);
//
在內存中創建圖象
int
width
=
90
, height
=
40
;
BufferedImage image
=
new
BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
//
獲取圖形上下文
Graphics g
=
image.createGraphics();
//
設定背景色
g.setColor(getRandColor(
180
,
250
));
g.fillRect(
0
,
0
, width, height);
Random random
=
new
Random();
//
生成干擾橢圓
for
(
int
i
=
0
; i
<
5
; i
++
)
{
g.setColor(getRandColor(
50
,
100
));
int
x
=
random.nextInt(width);
int
y
=
random.nextInt(height);
g.drawOval(x, y,
4
,
4
);
}
g.setFont(
new
Font(
""
, Font.PLAIN,
40
));
String sRand
=
""
;
for
(
int
i
=
0
; i
<
4
; i
++
)
{
//
取隨機產生的認證碼(4位數字)
String rand
=
String.valueOf(random.nextInt(
10
));
sRand
+=
rand;
//
隨機產生顏色
g.setColor(
new
Color(
20
+
random.nextInt(
80
),
20
+
random.nextInt(
100
),
20
+
random.nextInt(
90
)));
//
畫數字
g.drawString(rand, (
17
+
random.nextInt(
3
))
*
i
+
8
,
34
);
//
生成干擾線
for
(
int
k
=
0
; k
<
12
; k
++
)
{
int
x
=
random.nextInt(width);
int
y
=
random.nextInt(height);
int
xl
=
random.nextInt(
9
);
int
yl
=
random.nextInt(
9
);
g.drawLine(x, y, x
+
xl, y
+
yl);
}
}
req.getSession().setAttribute(
"
rand
"
,sRand);
g.dispose();
javax.imageio.ImageIO.write(image,
"
JPEG
"
, resp.getOutputStream());
}
}
posted on 2006-06-26 22:02
baim
閱讀(213)
評論(0)
編輯
收藏
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
Powered by:
BlogJava
Copyright © baim
<
2006年6月
>
日
一
二
三
四
五
六
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
導航
首頁
新隨筆
聯系
聚合
管理
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
隨筆分類
(27)
ent(1)
(rss)
Java(3)
(rss)
開源軟件框架(14)
(rss)
數據庫(5)
(rss)
軟件配置使用(4)
(rss)
隨筆檔案
(28)
2007年10月 (2)
2006年7月 (6)
2006年6月 (20)
搜索
最新評論
1.?re: Hibernate一對多數據關聯
很屁精
--很高
主站蜘蛛池模板:
兴海县
|
库车县
|
确山县
|
德保县
|
新化县
|
辽源市
|
若尔盖县
|
康平县
|
东山县
|
布拖县
|
平安县
|
沙湾县
|
玉龙
|
浦县
|
曲阜市
|
平南县
|
南靖县
|
呼和浩特市
|
小金县
|
凤凰县
|
启东市
|
宝鸡市
|
平罗县
|
荔浦县
|
徐州市
|
汶川县
|
沭阳县
|
房产
|
三穗县
|
原平市
|
老河口市
|
鄂尔多斯市
|
大理市
|
启东市
|
郓城县
|
瓮安县
|
毕节市
|
元谋县
|
德江县
|
凤翔县
|
沾益县
|