1.servlet产生验证码:
package com.servlet;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Img extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("image/jpeg");
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
OutputStream out=response.getOutputStream();
int w=80,h=20;
BufferedImage img=new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
Graphics g=img.getGraphics();
Random ran=new Random();
g.fillRect(0, 0, w, h);
g.setFont(new Font("Times New Roman",Font.ITALIC,18));
String sRan="";
for(int i=0;i<4;i++){
String rand=String.valueOf(ran.nextInt(10));
sRan+=rand;
g.setColor(new Color(20+ran.nextInt(110),20+ran.nextInt(110),20+ran.nextInt(110)));
g.drawString(rand,20*i+6,16);
}
request.getSession().setAttribute("ch", sRan);
g.dispose();
ImageIO.write(img, "jpeg", out);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
2.嵌入html中
<img src="Img" >
3.验证码的刷新
1)点击验证码刷新
<img src="Img" name="image" οnclick="document.all.image.src='Img'">
2)点击外部链接实现验证码刷新
<img src="Img" name="image" >看不清<a href="javascript:document.all.image.src='Img'">换一张</a>