随机生成指定位数的验证码

用户在表单中输入验证码的位数:

<%@ page contentType="text/html;charset=gb2312"%>
<html>
  <head>
    <title>随机产生指定位数的验证码</title>
    <link rel="stylesheet" type="text/css" href="css/style.css">
  </head>  
  <body>
    <center>
      <form action="dorandomnum.jsp">
        <table style="margin-top:200" width="300" border="1" cellpadding="0" cellspacing="0" bordercolor="black" bordercolorlight="black" bordercolordark="white">
          <tr bgcolor="lightgrey" height="25">
            <td align="center">随机产生指定位数的验证码</td>
          </tr>
          <tr height="50">
            <td align="center">
              输入验证码位数:
              <input type="text" name="number">
              <input type="submit" name="logon" value="生成">
            </td>
          </tr>
        </table>
       </form> 
     </center>
  </body>
</html>



用户点击生成之后自动跳转到dorandomnum.jsp:

<%@ page contentType="text/html;charset=gb2312"%>
<jsp:useBean id="myrandom" class="com.wgh.random.RanDom"/>
<%
  String strnum=request.getParameter("number");
  if(strnum==null)
 strnum="0";
  int num=0;
  try{
 num=Integer.parseInt(strnum);
  }catch(Exception e){num=0;}
  myrandom.setNumber(num);
  myrandom.makeChecknum();
%>
<html>
  <head>
    <title>随机产生指定位数的验证码</title>
    <link rel="stylesheet" type="text/css" href="css/style.css">
  </head>
  <body>
   <center>
       <table style="margin-top:200" width="250" border="1" cellpadding="0" cellspacing="0" bordercolor="black" bordercolorlight="black" bordercolordark="white">
         <tr bgcolor="lightgrey" height="30">
            <td align="center">生成的验证码</td>
         </tr>
         <tr height="50">
            <td align="center">
              验证码的位数:<%=myrandom.getNumber() %>
              <br>
              生成的验证码:<%=myrandom.getChecknum()%>
            </td>
         </tr>
       </table>
       <a href="index.jsp">[返回]</a>
   </center>
  </body>
</html>


java逻辑代码:

package com.wgh.random;


public class RanDom {
private String checknum="";  //生成的验证码
private int number=0;       //用户输入的位数

    public RanDom(){}
public void setNumber(int number){
this.number=number;
}
public int getNumber(){
return this.number;
}
public void makeChecknum(){
String sourcenum="0123456789"; //定义获取随机数的源字符串
String siglenum=""; //保存获取到的单个随机数
String checknum=""; //获取到的随机数
int index=0; //获取随机数的位置
int i=0;
while(i<this.number){
index=((int)(Math.random()*100))%(sourcenum.length()-1); //随机生成获取随机数的位置
siglenum=sourcenum.substring(index,index+1); //获取单个随机数
checknum+=siglenum; //连接获取到的随机数
i++;
}
this.checknum=checknum;
}
public String getChecknum(){
return this.checknum;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值