使用JSP生成验证码(2)
来源:未知 责任编辑:责任编辑 发表时间:2014-02-18 03:25 点击:次
30. Random random = new Random();
31.
32. // 设定背景色
33. g.setColor(getRandColor(200, 250));
34. g.fillRect(0, 0, width, height);
35.
36. //设定字体
37. g.setFont(new Font("Times New Roman", Font.PLAIN, 18));
38.
39. //画边框 www.2cto.com
40. //g.setColor(new Color());
41. //g.drawRect(0,0,width-1,height-1);
42.
43. // 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
44. g.setColor(getRandColor(160, 200));
45. for (int i = 0; i < 100; i++) {
46. int x = random.nextInt(width);
47. int y = random.nextInt(height);
48. int xl = random.nextInt(12);
49. int yl = random.nextInt(12);
50. g.drawLine(x, y, x + xl, y + yl);
51. }
52.
53. // 取随机产生的认证码(4位数字)
54. String sRand = "";
55. for (int i = 0; i < 4; i++) {
56. String rand = String.valueOf(random.nextInt(10));
57. sRand += rand;
58. // 将认证码显示到图象中
59. g.setColor(new Color(20 + random.nextInt(110), 20 + random
60. .nextInt(110), 20 + random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
61. g.drawString(rand, 13 * i + 6, 16);
62. }
63.
64. // 将认证码存入SESSION
65. session.setAttribute("code", sRand);
66.
67. // 图象生效
68. g.dispose();
69.
70. // 输出图象到页面
71. ImageIO.write(image, "JPEG", response.getOutputStream());
72.%>
[注意]:
(1)contentType值设置为"image/JPEG"
3.result.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
相关新闻>>
- 发表评论
-
- 最新评论 更多>>