生成登陆验证码

package com.servlet;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
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;
import javax.servlet.http.HttpSession;

/**
* Servlet implementation class NumberServlet
*/
@WebServlet("/Number_1Servlet")
public class Number_1Servlet extends HttpServlet {
private static final long serialVersionUID = 1L;


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String randam = null;
Random random=new Random();
char char_i = 0;
char char_j = 0;
String string="";
for (int k = 0; k < 2; k++) {


int i= random.nextInt(90-65+1)+65;
int j=random.nextInt(122-97+1)+97;


char_i=(char) i;
char_j=(char) j;
string +=char_i+""+char_j;
}

//清除缓存 
response.setHeader( "Pragma" , "No-cache" );
response.setHeader( "Cache-Control" , "no-cache" );
response.setDateHeader( "Expires" , 0);
randam=string;
HttpSession session=request.getSession();
session.setAttribute("randam2", randam);
BufferedImage bufferedImage=new BufferedImage(80, 25, BufferedImage.TYPE_3BYTE_BGR);
Graphics graphics=bufferedImage.getGraphics();
graphics.setColor(Color.green);
graphics.setFont(new Font("", Font.BOLD, 17));
graphics.fillRect(0, 0, 80, 25);
graphics.setColor(Color.red);
graphics.drawString(string, 5, 20);
ImageIO.write(bufferedImage, "JPEG", response.getOutputStream());
/* ServletOutputStream out=response.getOutputStream();
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
encoder.encode(bufferedImage);
out.close();*/

}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}

}

原文地址:https://www.cnblogs.com/xyd51cto/p/7732111.html