struts2返回登陆验证码

来源:互联网 发布:excel表格找出相同数据 编辑:程序博客网 时间:2024/06/05 07:57

[1].[代码] 验证码跳至[1]

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
public final class ImageUtil {
    privatestaticfinal String[] chars = {"0","1","2","3","4","5","6",
            "7","8","9","A","B","C","D","E","F","H","M","N","X","Y","W","T"};
    privatestaticfinal int SIZE = 4;
    privatestaticfinal int LINES =6;
    privatestaticfinal int WIDTH = 100;
    privatestaticfinal int HEIGHT = 30;
    privatestaticfinal int FONT_SIZE = 20;
     
    publicstaticMap<String,BufferedImage> getImage() {
        StringBuffer sb =newStringBuffer();
        BufferedImage image =newBufferedImage(WIDTH, HEIGHT,
                BufferedImage.TYPE_INT_RGB);
        Graphics graphic = image.getGraphics();
        graphic.setColor(Color.LIGHT_GRAY);
        graphic.fillRect(0,0, WIDTH, HEIGHT);
        Random ran =newRandom();
     
        for(inti=1;i<=SIZE;i++){
            intr = ran.nextInt(chars.length);
            graphic.setColor(getRandomColor());
            graphic.setFont(newFont(null,Font.BOLD+Font.ITALIC,FONT_SIZE));
            graphic.drawString(chars[r],(i-1)*WIDTH/SIZE , HEIGHT/2);
            sb.append(chars[r]);
        }
     
        for(inti=1;i<=LINES;i++){
            graphic.setColor(getRandomColor());
            graphic.drawLine(ran.nextInt(WIDTH), ran.nextInt(HEIGHT), ran.nextInt(WIDTH),ran.nextInt(HEIGHT));
        }
        Map<String,BufferedImage> map =newHashMap<String,BufferedImage>();
        map.put(sb.toString(), image);
        returnmap;
    }
     
    publicstaticColor getRandomColor(){
        Random ran =newRandom();
        Color color =newColor(ran.nextInt(256),ran.nextInt(256),ran.nextInt(256));
        returncolor;
    }
--------------------------------------------------
public class ImageAction extendsBaseAction{
    privateInputStream imageStream;
     
    publicString execute(){
        Map<String,BufferedImage> map =
                        ImageUtil.getImage();
         
        String code =
            map.keySet().iterator().next();
         
        session.put("code", code);
     
        BufferedImage image = map.get(code);
     
        ByteArrayOutputStream bos =
                newByteArrayOutputStream();
        JPEGImageEncoder encoder =
                JPEGCodec.createJPEGEncoder(bos);
        try{
            encoder.encode(image);
             
            byte[] bytes = bos.toByteArray();
            imageStream =newByteArrayInputStream(bytes);
            return"success";
        }catch(Exception e) {
            e.printStackTrace();
            return"f";
        }
    }
 
    publicInputStream getImageStream() {
        returnimageStream;
    }
 
    publicvoidsetImageStream(InputStream imageStream) {
        this.imageStream = imageStream;
    }
     
-------------------------------------------------------
public class BaseAction implementsSessionAware{
    protectedMap<String,Object> session;
    publicvoidsetSession(Map<String, Object> session) {
        this.session = session;
    }
 
}
0 0
原创粉丝点击