花看半開,酒飲微醉
隨機驗證碼
隨機驗證碼程序
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一對多數據關聯
很屁精
--很高
主站蜘蛛池模板:
安西县
|
鹿泉市
|
新宾
|
绍兴县
|
玉田县
|
曲水县
|
文安县
|
余江县
|
铅山县
|
松潘县
|
巧家县
|
溆浦县
|
来宾市
|
赣州市
|
锡林浩特市
|
湖南省
|
灵璧县
|
游戏
|
宜宾市
|
邓州市
|
石景山区
|
通江县
|
合肥市
|
贵定县
|
永康市
|
宁南县
|
新乐市
|
婺源县
|
罗甸县
|
平泉县
|
松阳县
|
深圳市
|
涞水县
|
富阳市
|
潢川县
|
册亨县
|
兴文县
|
武鸣县
|
平江县
|
靖安县
|
扬州市
|