【Java开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了Java开源代码-CheckCodeImage.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
CheckCodeImage.java为[网学网-网友上传,谢谢支持]。
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class CheckCodeImage extends HttpServlet {
//~ Static fields/initializers =============================================
//==============================================================================
/**
* log
*/
private static Log log = LogFactory.getLog(CheckCodeImage.class);
//~ Constructors ===========================================================
/**
* default contructor
*
*/
public CheckCodeImage() {
}
//~ Methods ================================================================
//==============================================================================
/**
* 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);
}
}
上一篇:
CheckboxTest.java
下一篇:
ASP小区停车管理系统(Access)(含录像)