Java验证码系列(2):JSP版加减乘除运算验证码

Java验证码系列(2):JSP版加减乘除运算验证码

发表于:2011-03-12 | Author:屁孩 | Categories: Java编程 | Tags: Java验证码 | 查看:849 次

         在上篇文章中介绍了什么是验证码,本文将讲述在Java中如何实现“加减乘除运算验证码”。所谓加减乘除运算验证码就是在页面上的表单中显示一个简单的运算表达式,让用户填写运算的结果。如下图中,只需填上表达式5*1的运算结果为5,提交即可。如果不会还可以单击链接“好难,换一个…”,程序就会换个新的表达式。

      具体实现代码清单如下:

  1. <%@ page contentType=“text/html; charset=UTF-8″%>   
  2. <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>   
  3. <html>   
  4.     <head>   
  5.         <title>加减乘除版验证码</title>   
  6.         <%   
  7.             java.util.Random random = new java.util.Random();   
  8.   
  9.             // 定义数组存放加减乘除四个运算符   
  10.             char[] arr = { ’+', ’-', ’*', ’/' };   
  11.   
  12.             // 生成10以内的随机整数num1   
  13.             int num1 = random.nextInt(10);   
  14.   
  15.             // 生成一个0-4之间的随机整数operate   
  16.             int operate = random.nextInt(4);   
  17.   
  18.             // 生成10以内的随机整数num1   
  19.             int num2 = random.nextInt(10);   
  20.   
  21.             // 避免出现除数为0的情况   
  22.             if (operate == 3) {   
  23.                 // 如果是除法,那除数必须不能为0,如果为0,再次生成num2   
  24.                 while (num2 == 0) {   
  25.                     num2 = random.nextInt(10);   
  26.                 }   
  27.             }   
  28.   
  29.             // 运算结果   
  30.             int result = 0;   
  31.   
  32.             // 假定position值0/1/2/3分别代表”+”,”-”,”*”,”/”,计算前面操作数的运算结果   
  33.             switch (operate) {   
  34.             case 0:   
  35.                 result = num1 + num2;   
  36.                 break;   
  37.             case 1:   
  38.                 result = num1 - num2;   
  39.                 break;   
  40.             case 2:   
  41.                 result = num1 * num2;   
  42.                 break;   
  43.             case 3:   
  44.                 result = num1 / num2;   
  45.                 break;   
  46.             }   
  47.   
  48.             // 将生成的验证码值放到session中,以便于后台做验证。   
  49.             session.setAttribute(“num1″, num1);   
  50.             session.setAttribute(“num2″, num2);   
  51.             session.setAttribute(“operate”, arr[operate]);   
  52.         %>   
  53.     </head>   
  54.   
  55.     <body>   
  56.         <%=num1%> <%=arr[operate]%> <%=num2%> =   
  57.         <input type=“text” name=“YZM” size=“4″ lang=“4″ />   
  58.         <a href=“javascript:window.location.reload()”>好难,换一个…</a>   
  59.         <br />   
  60.         <input type=“button” value=“提交” />   
  61.     </body>   
  62. </html>   

     上面代码中主要步骤已经做了详细的注释,所以不在过多的解释。如果有疑问可以留言给我,我会及时进行回复!另外本程序的实用性其实不是很高,其中的链接“好难,换一个”是直接刷新当前页面,这在实际应用中是不允许的,在下面一篇文章中,我会介绍如何解决这个问题!感兴趣的同学请继续关注!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值