评论

收藏

[JSP] 用jsp页面生成随机的验证数字码示例

开发技术 开发技术 发布于:2021-10-23 19:39 | 阅读数:258 | 评论:0

checkNum.jsp
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%> 
<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,javax.imageio.*"%> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
<%! 
Color getRandColor(int fc,int bc)//给定范围随机选颜色 
{ 
Random random = new Random(); 
if(fc>255) fc= 255; 
if(bc>255) bc= 255; 
int r= fc+random.nextInt(bc-fc); 
int g= fc+random.nextInt(bc-fc); 
int b= fc+random.nextInt(bc-fc); 
return new Color(r,g,b); 
} 
%> 
<% 
response.setHeader("Pragma","No-cache");//设置页面不缓冲 
response.setHeader("Cache-Control","no-cache"); 
response.setDateHeader("Expires",0); 
int width=60,height=20; 
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); 
Graphics g = image.getGraphics();//获取图像上下文 
Random random = new Random();//生成随机对象 
g.setColor(getRandColor(200,250)); 
g.fillRect(0,0,width,height); 
g.setFont(new Font("Times New Roman",Font.PLAIN,18));//设置字体 
for(int i=0;i<155;i++) 
{ 
int x=random.nextInt(width); 
int y=random.nextInt(height); 
int x1 = random.nextInt(12); 
int y1 = random.nextInt(12); 
g.drawLine(x,y,x+x1,y+y1); 
} 
//随机产生验证码 
String sRand = ""; 
for(int i=0;i<4;i++) 
{ 
String rand = String.valueOf(random.nextInt(10)); 
sRand+=rand; 
//将验证码显示到图像中 
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110))); 
//设置显示随机数的颜色 
g.drawString(rand,13*i+6,16); 
} 
//将验证码存放到session中 
session.setAttribute("rand",sRand); 
//图像生效 
g.dispose(); 
//输出图像到页面 
ImageIO.write(image,"JPEG",response.getOutputStream()); 
out.clear(); 
out = pageContext.pushBody(); 
%> 
可以在登录login.jsp下直接通过: 这种格式调用; 
验证码:<input class="imgbutton" name="checknum" type="text" size="15" id ="checknum" maxlength="4"/> 
<img src="checknum.jsp" alt="Change" border="1" /><br/> 
<input type="submit" name="submit" value="login"/>
关注下面的标签,发现更多相似文章