`

java生成动态gif格式与png格式的验证码(代码5)

 
阅读更多
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
 * 流操作类
 * @author wzztestin
 *
 */
public class Streams {
	/**
	 * 关闭输入流
	 * 
	 * @param in
	 *            输入流
	 */
	public static void close(InputStream in) {
		if (in != null) {
			try {
				in.close();
			} catch (IOException ioex) {
				// ignore
			}
		}
	}

	/**
	 * 关闭输出流
	 * 
	 * @param out
	 *            输出流
	 */
	public static void close(OutputStream out) {
		if (out != null) {
			try {
				out.flush();
			} catch (IOException ioex) {
				// ignore
			}
			try {
				out.close();
			} catch (IOException ioex) {
				// ignore
			}
		}
	}
}

 

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.microcare.framework.logs.Logit;

/**
 * 新的验证码
 * @author wzztestin
 *
 */
public class NewYanZHengMa extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = -1434521774502002007L;

	private static String AUTH_CODE_KEY = "fraudrand";

	public void init() throws ServletException {
		super.init();
	}
	
	/**
	 * 生成验证码
	 */
	@SuppressWarnings("static-access")
	public void doGet(HttpServletRequest request, 
			HttpServletResponse response) throws ServletException, IOException {
		response.setHeader("Pragma", "No-cache");
		response.setHeader("Cache-Control", "no-cache");
		response.setDateHeader("Expires", 0);
		response.setContentType("image/jpeg");
		Captcha captcha = new GifCaptcha(150,40,5);
		captcha.getVilidCode();
		int svalue = 0;
		if("+".equals(captcha.getCzfu())){
			svalue = Integer.parseInt(captcha.getOnenum()) + Integer.parseInt(captcha.getTwonum());
		}else{
			svalue = Integer.parseInt(captcha.getOnenum()) - Integer.parseInt(captcha.getTwonum());
		}
		setAuthCode(request, svalue+"");
		Logit.errorLog("newyzm "+this.getAuthCode(request));
		ServletOutputStream out = response.getOutputStream();
        captcha.out(out);
        out.flush();  
        return;
	}
	
	/**
	 * 得到验证码的值
	 * @param request
	 * @return
	 */
	public static String getAuthCode(HttpServletRequest request) {
		String result = null;
		if (request == null) {
			Logit.errorLog("request is null!");
			return result;
		}
		HttpSession session = request.getSession(false);
		if (session == null) {
			Logit.errorLog("session is null!");
			return result;
		}
		if (session.getAttribute(AUTH_CODE_KEY) != null) {
			result = (String)session.getAttribute(AUTH_CODE_KEY);		
		}
		return result;
	}
	
	/**
	 * 把值存入session中
	 * @param request
	 * @param authCode
	 */
	public static void setAuthCode(HttpServletRequest request, String authCode) {
		if (request == null || authCode == null) {
			Logit.errorLog("request/authCode is null!");
			return;
		}
		HttpSession session = request.getSession(true);
		if (session == null) {
			Logit.errorLog("session is null!");
			return;
		}
		session.setAttribute(AUTH_CODE_KEY, authCode);		
	}
	
	/**
	 * 移除验证码
	 * @param request
	 */
	public static void removeAuthCode(HttpServletRequest request) {
		if (request == null) {
			Logit.errorLog("request is null!");
			return;
		}
		HttpSession session = request.getSession(false);
		if (session == null) {
			Logit.errorLog("session is null!");
			return;
		}		
		session.removeAttribute(AUTH_CODE_KEY);
	}
}

 

分享到:
评论

相关推荐

    Java生成验证码(包含gif动画验证码)

    对于上述内容,`GifCapatche`可能是一个用于生成GIF验证码的Java工具或库。尽管具体实现细节未在描述中给出,但我们可以推断它应该包含了创建多帧验证码图片并合成GIF的功能,可能还提供了自定义配置项,如字符集、...

    基于java写的验证码生成项目,支持gif,png,两种格式,低代码开发。支持更换验证码内容,设置干扰线,设置干扰圆,扭曲效果。

    本项目基于Java编程语言实现,提供了生成动态验证码的功能,支持GIF和PNG两种图像格式,适用于Java Web项目以及前后端分离的开发模式。下面将详细阐述这个验证码生成项目的核心知识点。 1. **Java开发**: Java是...

    Android gif 动态验证码

    在Android开发中,动态验证码(通常以GIF格式呈现)是一种常见的安全机制,用于验证用户身份,防止自动化脚本或机器人进行恶意操作。本项目提供了一个示例,可以帮助开发者了解如何在Android应用中实现GIF动态验证码...

    java实现动态验证码的效果

    5. **保存和显示验证码**:生成的验证码图片可以保存为`.png`或`.gif`等格式,通过HTTP响应发送到客户端,或者直接在GUI应用中显示。在Web应用中,可以使用`response.getOutputStream()`写入图片的字节流。 6. **...

    生成验证码png(加减乘除)和gif(输入)

    生成加减乘除或者输入验证的验证码工具,png加减乘除输入结果、gif看图输入验证

    基于jsp的验证码自动生成

    我们可以使用Java的`java.awt`和`javax.imageio`包来绘制图像和保存为PNG或GIF格式。以下是一个简单的例子: ```java BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); ...

    通过OpenCV实现的全自动图形图片验证码识别软件

    在这个项目中,提供的资源包括不同格式的验证码图像(B124-2017.gif、B124-2017.jpg、B124-2017.png),可能用于训练和测试识别算法。Code.bmp可能是验证码识别过程中的示例图像,而Code.exe是实际运行的识别软件。...

    java生成图片

    5. **图像读写**: Java标准库中的`javax.imageio.ImageIO`类提供了读取和写入图像文件的能力,支持多种格式,如JPEG、PNG、GIF等。`ImageIO.read()`用于读取图像,`ImageIO.write()`用于将BufferedImage保存为文件。...

    java开源包10

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包8

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包5

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包4

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包6

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包9

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包101

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包1

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包3

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    Java资源包01

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包7

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

Global site tag (gtag.js) - Google Analytics