⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkcodeimage.java

📁 Jaoso新闻文章发布系统 0.9.1final 程序架构: Struts+Spring+Hibernate 主要功能:   ·新闻采用在线编辑器,可以象使用word一样编辑新闻,可简繁
💻 JAVA
字号:
package jaoso.framework.web.servlet;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

import org.apache.commons.lang.RandomStringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;

import java.io.IOException;
import java.io.OutputStream;

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

/**
 * 
 * @author edgeloner edgeloner@163.com
 * 
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
public class CheckCodeImage extends HttpServlet {
	//==============================================================================

	/**
	 * log
	 */
	private static Log log = LogFactory.getLog(CheckCodeImage.class);

	/**
	 * default contructor
	 *  
	 */
	public CheckCodeImage() {
	}

	//==============================================================================

	/**
	 * service
	 * 
	 * @param request
	 *            aa
	 * @param response
	 *            aa
	 * @exception IOException
	 *                ioexception
	 * @exception ServletException
	 *                exception
	 */
	public final void service(final HttpServletRequest request,
			final HttpServletResponse response) throws ServletException,
			IOException {
		response.setContentType("image/jpeg");

		//??��?��?�即??�校验�??
		String checkCode = RandomStringUtils.randomNumeric(4);

		//?��?��
		BufferedImage image = new BufferedImage(50, 18,
				BufferedImage.TYPE_INT_RGB);
		Graphics2D g2d = image.createGraphics();
		Font font = new Font(g2d.getFont().getFontName(), Font.PLAIN, 18);
		g2d.setFont(font);
		g2d.setColor(Color.white);
		g2d.fill(new Rectangle(image.getWidth(), image.getHeight()));
		g2d.setColor(Color.darkGray);

		for (int i = 0; i < ((int) (Math.random() * 60) + 20); ++i) {
			g2d.fill(new Rectangle((int) (Math.random() * image.getWidth()),
					(int) (Math.random() * image.getHeight()), 1, 1));
		}

		g2d.setPaint(Color.blue);
		g2d.drawString(checkCode, 2, 15); //(int) (Math.random() * 15) + 5
		g2d.dispose();

		//输出?��???
		try {
			//ImageIO.write(image, "gif", response.getOutputStream());
			OutputStream out = response.getOutputStream();
			JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
			encoder.encode(image);
			out.flush();
		} catch (Exception ex) {
			log.info(ex);
		}

		request.getSession().setAttribute("chkCode", checkCode);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -