图片验证码

public class ImageServlet extends HttpServlet{

	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		//设置Content-type响应头
		resp.setContentType("image/jpeg");
		
		//设置http头,不允许客户端缓存验证码图片(单个是指针对某一个浏览器生效)
		resp.setHeader("pragma", "No-cache");
		resp.setHeader("Cache-Control", "No-cache");
		resp.setDateHeader("Expires", 0);
		
		//向客户端输出二进制数据
		OutputStream out = resp.getOutputStream();
		
		//以下代码用来生成验证码图片
		int width = 80;
		int height = 20;
		BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);
		Graphics g = image.getGraphics();
		g.fillRect(0, 0, width, height);
		g.setFont(new Font("Times New Roman",Font.ITALIC,18));
		
		String checkCode= "";
		Random random = new Random();
		for(int i = 0; i < 4; i++){
			String rand = String.valueOf(random.nextInt(10));
			checkCode += rand;
			//随即设置数字颜色,增加识别验证码的难度,防止识别软件盗用使用
			g.setColor(new Color(20+random.nextInt(110),
					20+random.nextInt(110),
					20+random.nextInt(110)));
			
			g.drawString(rand, i * 20 + 6, 16);
		}
		g.dispose();    //生成图片完毕
		
		//将产生的验证码存Session中
		
	    req.getSession().setAttribute("checkCode",checkCode);
	    
		ImageIO.write(image,"JPEG",out);
	}

 

 

直接调用Servlet就是....

<img src="testImageServlet" />

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值