Java web生成验证码并输入验证

验证码可以区分进行操作的是否为人为操作,一般常见用于登录、注册等,使用验证码可以防止有人恶意注册等操作。Java编写生成一个验证码图片的工具类,主要是用到Java绘图工具类。
封装一个生成随机验证码的静态方法,在servlet调用封装的方法。

private void checkCode(HttpServletRequest request, HttpServletResponse response) throws IOException {
     
 // 服务器通知浏览器不要缓存  
 response.setHeader("pragma", "no-cache");  
 response.setHeader("cache-control", "no-cache");  response.setHeader("expires", "0");  
 response.setDateHeader("expires", -1);// 发送响应头,控制浏览器不要缓存  
 int width = 120;  
 int height = 42;  
 // 生成对应宽高的初始图片
 // 在内存中创建一个宽120,高42的图片,默认黑色背景  
 BufferedImage verifyImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
 // 调用封装生成随机验证码,取得验证码字符  
 String randomText = VerifyCode.drawRandomText(width, height, verifyImg);
 //把验证码字符存在到session中,便于登录/注册等时检验用户输入的验证码是否正确 
 request.getSession().setAttribute("verifyCode", randomText);  response.setContentType("image/jpeg");// 必须设置响应内容类型为图片(通知浏览器以图片形式打开),否则前台不识别  
 // 将内存中的图片输出到浏览器 参数一:图片对象  参数二:图片的格式,如PNG,JPG,GIF 参数三:图片输出到哪里去 
 OutputStream os = response.getOutputStream(); // 获取文件输出流
 ImageIO.write(verifyImg, "png", os);// 输出图片流  
 os.flush();  
 os.close();// 关闭流 
}  

封装生成验证码字符,返回值为验证码字符。返回验证码图片关键是绘制图片,在Java中可以使用BufferedImage、Graphics、Graphics2D、Color等对象进行绘图。

public static String drawRandomText(int width, int height, BufferedImage verifyImg) {
   		
//可以把BufferedImage 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值