java web 图片校验_java web中图片验证码功能的简单实现方法

用户在注册网站信息的时候基本上都要数据验证码验证。那么图片验证码功能该如何实现呢?

大概步骤是:

1.在内存中创建缓存图片

2.设置背景色

3.画边框

4.写字母

5.绘制干扰信息

6.图片输出

废话不多说,直接上代码

package com.lsgjzhuwei.servlet.response;

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.image.BufferedImage;

import java.io.IOException;

import java.util.Random;

import javax.imageio.ImageIO;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

* Servlet implementation class VerificationCode

*/

@WebServlet(asyncSupported = true, urlPatterns = { "/VerificationCode" })

public class VerificationCode extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public VerificationCode() {

super();

// TODO Auto-generated constructor stub

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

int width = 120;

int height = 30;

//创建一张内存中的缓存图片

BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

///背景色

//通过graphics绘制图像

Graphics graphics = bufferedImage.getGraphics();

//设置颜色

graphics.setColor(Color.yellow);

//填充

graphics.fillRect(0, 0, width, height);

///画边框

graphics.setColor(Color.blue);

graphics.drawRect(0, 0, width-1, height-1);

//写字母

String content = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcedfghijklmnopqrstuvwxyz1234567890";

Random random = new Random();

//设置字体颜色

graphics.setColor(Color.red);

//设置字体及大小

graphics.setFont(new Font("宋体", Font.BOLD, 20));

int x=20;

int y=20;

for(int i = 0; i < 4; i++)

{

int index = random.nextInt(content.length());

char letter = content.charAt(index);

graphics.drawString(letter+" ", x, y);

x = x+20;

}

//绘制干扰线

int x1;

int x2;

int y1;

int y2;

graphics.setColor(Color.LIGHT_GRAY);

for(int i = 0;i <50;i++)

{

x1=random.nextInt(width);

x2=random.nextInt(width);

y1=random.nextInt(height);

y2=random.nextInt(height);

graphics.drawLine(x1, y1, x2, y2);

}

//将图片输出到浏览器

//将内存的图片通过浏览器输出流输出成jpg图片

ImageIO.write(bufferedImage, "jpg", response.getOutputStream());

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

}

}

以上这篇java web中图片验证码功能的简单实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值