out.println("验证码<input type='text' name='checkcode'/>
<img src='/Servlet4/CreateCode'/><br />");
src='/项目名/ 类名'
public class CreateCode extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1. 禁止浏览器缓存随机图片
response.setDateHeader("Expires", -1);
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
//2.通知客户端以图片方式打开发送的数据
response.setHeader("Content-Type", "image/jpep");
//1. 在内存中创建一副图片
BufferedImage image=new BufferedImage(80,30,BufferedImage.TYPE_INT_BGR);
//2. 在向上写数据
Graphics g=image.getGraphics();
//设置背景色
g.setColor(Color.BLACK);
g.fillRect(0,0,80,30);
//3.设置写入数据 的颜色和字体
g.setColor(Color.WHITE);
g.setFont(new Font(null,Font.BOLD,20));//???
// 4.向图片上写入数据
String num=makeNum();
//这句话 就是随机生成的数值, 保存到session
request.getSession().setAttribute("checkcode", num);
g.drawString(num, 0, 20);
//3.将写好的数据图片输出给浏览器
ImageIO.write(image, "jpg",response.getOutputStream());
}
//4.该函数时随机生成7位数字
public String makeNum(){
Random r=new Random();
String num =r.nextInt(9999999)+"";
StringBuffer sb=new StringBuffer();
for(int i=0;i<7-num.length();i++){
sb.append("0");
}
num=sb.toString()+num;
return num;
}