首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

容易的struts2验证码

2012-08-27 
简单的struts2验证码引用自:http://blog.csdn.net/bill600/archive/2010/10/03/5919944.aspxpackage com.i

简单的struts2验证码
引用自:http://blog.csdn.net/bill600/archive/2010/10/03/5919944.aspx


package com.image; 
 
import java.awt.Color; 
import java.awt.Font; 
import java.awt.Graphics; 
import java.awt.image.BufferedImage; 
import java.util.Map; 
import java.util.Random; 
 
import javax.imageio.ImageIO; 
 
import javax.servlet.http.HttpServletResponse; 
 
import org.apache.struts2.ServletActionContext; 
 
import com.opensymphony.xwork2.ActionContext; 
import com.opensymphony.xwork2.ActionSupport; 
 
public class Image extends ActionSupport { 
 
    /**
     * 
     */ 
    private static final long serialVersionUID = 1L; 
 
    public void makeImage() throws Exception{ 
        Map<String, Object> session = ActionContext.getContext().getSession(); 
        HttpServletResponse res = ServletActionContext.getResponse(); 
        BufferedImage img = new BufferedImage(68, 22, 
                BufferedImage.TYPE_INT_RGB); 
 
        // 得到该图片的绘图对象 
 
        Graphics g = img.getGraphics(); 
 
        Random r = new Random(); 
 
        Color c = new Color(200, 150, 255); 
 
        g.setColor(c); 
        // 填充整个图片的颜色 
        g.fillRect(0, 0, 68, 22); 
        // 向图片中输出数字和字母 
 
        StringBuffer sb = new StringBuffer(); 
 
        char[] ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray(); 
 
        int index, len = ch.length; 
 
        for (int i = 0; i < 4; i++) { 
 
            index = r.nextInt(len); 
 
            g.setColor(new Color(r.nextInt(88), r.nextInt(188), r.nextInt(255))); 
                     
            g.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 22));// 输出的字体和大小 
 
            g.drawString("" + ch[index], (i * 15) + 3, 18);// 写什么数字,在图片的什么位置画 
 
            sb.append(ch[index]); 
 
        } 
 
        session.put("piccode", sb.toString()); 
         
 
        ImageIO.write(img, "JPG", res.getOutputStream()); 
 
    } 
 


配置文件:
<action name="image" method="makeImage"></action>

热点排行