调用方法
http://..***getImg">
http://..***getImg">
原理,在servlet中随机生成一个4位数字1000-9999
然后把这数字写入session
输出一个图片,上面写有这四个数字
在服务器端根据用户输入的数字和
session中的值比较。
package
co***choolwx.util;
import java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.awt.*;
import java.awt.image.*;
/**
* Title:
ge***g.java
* Description: 这个class主要实现随机生成一个4位数的验证码,并写入session,
* Copyright: Copyright (c) 2003
* Company: 蓝星软件
* @author falcon
* @version 1.1
*/
public class getImg extends HttpServlet {
private Font mFont=new Font("宋体",
Fo***PLAIN,12);//设置字体
//处理post
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
doGet(request,response);
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
//取得一个1000-9999的随机数
String s="";
int intCount=0;
intCount=(new Random()).nextInt(9999);//
if(intCount<1000)intCount+=1000;
s=intCount+"";
//对session付值。
HttpSession
se***on=request.getSession (true);
se***on.setAttribute("getImg",s);
re***nse.setContentType("image/gif");
ServletOutputStream
ou***esponse.getOutputStream();
BufferedImage image=new BufferedImage(35,14,
Bu***redImage.TYPE_INT_RGB);
Graphics
gr***mage.getGraphics();
//设置背景色
gr***etColor(
Co***.yellow);
gr***illRect(1,1,33,12);
//设置字体色
gr***etColor(
Co***.black);
gr***etFont(mFont);
//输出数字
char c;
for(int i=0;i<4;i++) {
c=***harAt(i);
gr***rawString(c+"",i*7+4,11); //7为宽度,11为上下高度位置
}
JPEGImageEncoder
en***er=JPEGCodec.createJPEGEncoder(out);
en***er.encode(image);
ou***lose();
}
}
https://images.downcodes.com
http://blog.csdn.net/lixiaolong_blog/archive/2007/01/25/1493417.aspx