目录
Javaweb----图形验证码登录
代码:
package com.dong.servlet;
import javax.imageio.ImageIO;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@WebServlet( "/checkcode")
public class CheckCode extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("image/jpeg");
HttpSession session=request.getSession();
int with=60;
int height=20;
//设置浏览器不要缓存此图片
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
//创建内存图像并获得其图像的上下文
BufferedImage image =new BufferedImage(with,height,BufferedImage.TYPE_INT_RGB);
Graphics graphics=image.getGraphics();
//随机产生验证码
//定义验证码的字符表
String chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char[] rands=new char[4];
for (int i=0;i<4;i++){
int rand=(int) (Math.random()*36);
rands[i]=chars.charAt(rand);
}
//产生图像
//画背景
graphics.setColor(new Color(0xDCDCDC));
graphics.fillRect(0,0,with,height);
//随机产生120个干扰点
for (int i=0;i<120;i+