# 在登陆获或者注册的界面经常需要进行验证码的输入 这里进行简单的实现
一个简单的html界面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>验证码</title>
<script>
/**
* 在这里面动态的点击图片或者链接就会刷新验证码
*/
window.onload = function (ev) {
var img = document.getElementById("verification_img");
var sx = document.getElementById("sx");
img.onclick = function (ev1) {
var time = new Date().getTime();
img.src = "/_war_exploded2/verificationServlet?"+time;
}
sx.onclick = function (ev) {
var time = new Date().getTime();
img.src = "/_war_exploded2/verificationServlet?"+time; }
}
</script>
</head>
<body>
<img id="verification_img" src="/_war_exploded2/verificationServlet">
<a id="change" href="">看不清换一张?</a>
</body>
</html>
相当于验证码的那个区域(image)显示 通过点击图片或者链接可以进行刷新验证码
servlet的代码
package com.yanzhenma;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
@javax.servlet.annotation.WebServlet("/verificationServlet")
public class verificationServlet extends javax.servlet.http.HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
/*登陆注册 验证码的实例
* */
//1 画出一个验证码的框框(创建一个对象)
int width = 100;
int height = 50;
BufferedImage image = new BufferedImage (width,height ,BufferedImage.TYPE_INT_RGB);
//2
//2.1 填充颜色
Graphics graphics = image.getGraphics ( ); // 画笔对象
graphics.setColor (Color.PINK);
graphics.fillRect (0,0,width,height);
//2.2画边框
graphics.setColor(Color.BLUE);
graphics.drawRect(0,0,width - 1,height - 1);
String str = "qwertyuioplkjhgfdaszxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM1230456789";
Random random = new Random ();
for (int i = 1 ; i <=4;i++){
int index = random.nextInt (str.length ( )); //随机获取str里面的一个位置
char ch = str.charAt (index); //获取该位置的字符
graphics.drawString(ch+"",width/5*i,height/2);
}
//3 完成验证码 发送给页面
ImageIO.write (image,"jpg",response.getOutputStream ());
}
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
this.doPost (request,response);
}
}
验证码由大小写字母和阿拉伯数字随机组成
把在验证码写在image上面在 发送给html界面