📄 validatorcodeaction.java
字号:
package org.whatisjava.dang.action;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.OutputStream;import java.util.Random;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;public class ValidatorCodeAction extends Action { @Override public ActionForward execute( ActionMapping mapping,ActionForm form,HttpServletRequest req, HttpServletResponse res) throws Exception {// 设置session Random r = new Random(); String code =String.valueOf(r.nextInt(999999)); HttpSession session=req.getSession(); session.setAttribute("numberCode",code); // 设置响应类型 res.setContentType("image/jpeg"); BufferedImage bimg = new BufferedImage(100, 30, BufferedImage.TYPE_INT_RGB); Graphics g = bimg.getGraphics(); int x=r.nextInt(255),y=r.nextInt(255),z=r.nextInt(255); g.setColor(new Color(x,y,z)); g.fillRect(0, 0, 100, 30); //随机画线条 for (int i = 0; i <19; i++) { g .setColor(new Color(r.nextInt(255), r.nextInt(255), r .nextInt(255))); g.drawLine(r.nextInt(100),r.nextInt(30),r.nextInt(100),r.nextInt(30)); } g.setColor(new Color((x+128)%256, (y+128)%256, (z+128)%256)); g.setFont(new Font("Default", Font.BOLD,25)); g.drawString(code,3,25); // 压缩成Jpeg格式 OutputStream out = res.getOutputStream(); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); encoder.encode(bimg); out.flush(); out.close(); return null; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -