Java验证码系列(2):JSP版加减乘除运算验证码
在上篇文章中介绍了什么是验证码,本文将讲述在Java中如何实现“加减乘除运算验证码”。所谓加减乘除运算验证码就是在页面上的表单中显示一个简单的运算表达式,让用户填写运算的结果。如下图中,只需填上表达式5*1的运算结果为5,提交即可。如果不会还可以单击链接“好难,换一个…”,程序就会换个新的表达式。
具体实现代码清单如下:
- <%@ page contentType=“text/html; charset=UTF-8″%>
- <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
- <html>
- <head>
- <title>加减乘除版验证码</title>
- <%
- java.util.Random random = new java.util.Random();
- // 定义数组存放加减乘除四个运算符
- char[] arr = { ’+', ’-', ’*', ’/' };
- // 生成10以内的随机整数num1
- int num1 = random.nextInt(10);
- // 生成一个0-4之间的随机整数operate
- int operate = random.nextInt(4);
- // 生成10以内的随机整数num1
- int num2 = random.nextInt(10);
- // 避免出现除数为0的情况
- if (operate == 3) {
- // 如果是除法,那除数必须不能为0,如果为0,再次生成num2
- while (num2 == 0) {
- num2 = random.nextInt(10);
- }
- }
- // 运算结果
- int result = 0;
- // 假定position值0/1/2/3分别代表”+”,”-”,”*”,”/”,计算前面操作数的运算结果
- switch (operate) {
- case 0:
- result = num1 + num2;
- break;
- case 1:
- result = num1 - num2;
- break;
- case 2:
- result = num1 * num2;
- break;
- case 3:
- result = num1 / num2;
- break;
- }
- // 将生成的验证码值放到session中,以便于后台做验证。
- session.setAttribute(“num1″, num1);
- session.setAttribute(“num2″, num2);
- session.setAttribute(“operate”, arr[operate]);
- %>
- </head>
- <body>
- <%=num1%> <%=arr[operate]%> <%=num2%> =
- <input type=“text” name=“YZM” size=“4″ lang=“4″ />
- <a href=“javascript:window.location.reload()”>好难,换一个…</a>
- <br />
- <input type=“button” value=“提交” />
- </body>
- </html>
上面代码中主要步骤已经做了详细的注释,所以不在过多的解释。如果有疑问可以留言给我,我会及时进行回复!另外本程序的实用性其实不是很高,其中的链接“好难,换一个”是直接刷新当前页面,这在实际应用中是不允许的,在下面一篇文章中,我会介绍如何解决这个问题!感兴趣的同学请继续关注!