Commit f9c83778 by WeiCong

验证码生成

parent 9bc4d82a
package org.sss.presentation.noui.controller;
import log.Log;
import log.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.sss.presentation.noui.common.Constants;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
@Controller
public class VerifyCodeCreateController {
final static String STR = "QWERTYUPLKJHGFDSAZXCVBNMqwertyupkjhgfdsazxcvbnm1234567890";
private static final Log log = LogFactory.getLog(VerifyCodeCreateController.class);
private static final int width = 100;//验证码图片宽度
private static final int height = 50;//验证码图片高度
@RequestMapping("/VerifyCode")
public void create(HttpServletRequest request, HttpServletResponse response) {
drawVerifyCode(request, response);
}
/**
* 绘画验证码
*/
private void drawVerifyCode(HttpServletRequest request, HttpServletResponse response) {
Graphics2D g=null;
try {
Random r = new Random();
BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
g = bi.createGraphics();
g.setBackground(new Color(200, 150, 255));
g.fillRect(0, 0, width, height);
StringBuilder codes = new StringBuilder();
for (int i = 0; i < 4; i++) {
String code = STR.charAt(r.nextInt(STR.length())) + "";
g.setColor(new Color(r.nextInt(88), r.nextInt(188), r.nextInt(255)));
Font font = new Font("Times New Roman", Font.ITALIC, r.nextInt(1)*7+30);
g.setFont(font);
g.drawString(code, (i * 18) + 10, 30);
codes.append(code);
}
request.getSession().setAttribute(Constants.VERIFYCODE, codes.toString());
ImageIO.write(bi, "JPG", response.getOutputStream());
} catch (IOException e) {
log.error("绘制登陆验证码异常", e);
} finally {
if(g!=null){
g.dispose();
}
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment