JAVA编写最简单的登录验证码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用JAVA的awt包可以提供创建和修改图像的各种类。使用流框架来处理图像,该框架涉及图像生产者、可选的图像过滤器和图像使用者。

有了强大的awt包就可以做一个简单的登录验证码了,先看一下效果图:

废话不多说

其实登录验证码他不是一个固定的图片,他只是一个java代码向jsp页面输出的图片流而已。

首先需要在登录页面使用标签,在src中链接到编程好的jsp页面。

其中这个jsp页面是最重要的,以下是代码

Jsp代码

1<%@ page language="java" import="java.util.*"

pageEncoding="UTF-8"%>

2<%@ page language="java" import="java.awt.image.*"%>

3<%@ page language="java" import="java.awt.*"%>

4<%@ page language="java" import="javax.imageio.*"%>

5

6<%

7 //创建一个图像缓冲区对象相当于一张纸参数分别为宽、高、

图像类型

8 BufferedImage bi = new BufferedImage(60,

20,BufferedImage.TYPE_USHORT_555_RGB);

9 //得到制图对象相当于你得到了一支笔

10 Graphics g = bi.getGraphics();

11 //设置上下文颜色相当于背景颜色

12 g.setColor(Color.GREEN);

13 //进行填充 x、y、width、height

14 g.fillRect(0, 0, 60, 20);

15

16 Random rd = new Random();

17 //干扰纹

18 g.setColor(Color.GRAY);

19 //15条干扰纹

20 for (int i = 0; i < 15; i++) {

21 g.drawLine(rd.nextInt(61), rd.nextInt(21),

rd.nextInt(61), rd.nextInt(21));

22 }

23

24 //设置验证码

25

26 String code = "";

27 String str =

"qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789";

28 for (int i = 0; i < 4; i++) {

29 code += str.charAt(rd.nextInt(str.length()));

30 }

31

32 request.getSession().setAttribute("code",code);

33 //设置字的颜色

34 g.setColor(Color.BLUE);

35 //设置字体

36 g.setFont(new Font("黑体", Font.BOLD, 18));

37 //在图像上下文开始画由String的文本

38 g.drawString(code, 10, 15);

39

40 //使用图片输出流输出(纸,格式,输出方式)

41 ImageIO.write(bi, "jpeg", response.getOutputStream());

42 out.clear();

43 out = pageContext.pushBody();

44%>

当上面的代码都已经搞定之后,回到你需要加入验证码的页面

Html代码

45点击更换

width="60" height="20" onclick="refreshImg();"/>

最后我加入了一个点击事件用于再次刷新验证码,差不多一个简单的验证码就完成了!

相关文档
最新文档