用户在表单中输入验证码的位数:
<%@ 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;
}
}