Java tutorial
/** * Copyright © 2012-2013 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); */ package com.lcw.one.common.servlet; import org.apache.commons.lang.math.NumberUtils; import org.apache.commons.lang3.StringUtils; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.awt.*; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.util.Random; /** * ???? * @author ThinkGem * @version 2013-5-19 */ @SuppressWarnings("serial") public class ValidateCodeServlet extends HttpServlet { public static final String VALIDATE_CODE = "validateCode"; private int w = 70; private int h = 26; public ValidateCodeServlet() { super(); } public void destroy() { super.destroy(); } public static boolean validate(HttpServletRequest request, String validateCode) { String code = (String) request.getSession().getAttribute(VALIDATE_CODE); return validateCode.toUpperCase().equals(code); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String validateCode = request.getParameter(VALIDATE_CODE); // AJAX??true if (StringUtils.isNotBlank(validateCode)) { response.getOutputStream().print(validate(request, validateCode) ? "true" : "false"); } else { this.doPost(request, response); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { createImage(request, response); } private void createImage(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); response.setContentType("image/jpeg"); /* * ?? */ String width = request.getParameter("width"); String height = request.getParameter("height"); if (StringUtils.isNumeric(width) && StringUtils.isNumeric(height)) { w = NumberUtils.toInt(width); h = NumberUtils.toInt(height); } BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); } }