KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > geinuke > servlet > ImageServlet


1
2
3  /*
4  -- GeiNuke --
5 Copyright (c) 2005 by Roberto Sidoti [geinuke@users.sourceforge.net]
6  http://www.hostingjava.it/-geinuke/
7
8 This file is part of GeiNuke.
9
10     GeiNuke is free software; you can redistribute it and/or modify
11     it under the terms of the GNU General Public License as published by
12     the Free Software Foundation; either version 2 of the License, or
13     (at your option) any later version.
14
15     GeiNuke is distributed in the hope that it will be useful,
16     but WITHOUT ANY WARRANTY; without even the implied warranty of
17     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18     GNU General Public License for more details.
19
20     You should have received a copy of the GNU General Public License
21     along with GeiNuke; if not, write to the Free Software
22     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23 */

24 package com.geinuke.servlet;
25
26 import java.awt.Color JavaDoc;
27 import java.awt.Graphics2D JavaDoc;
28 import java.awt.image.BufferedImage JavaDoc;
29 import java.io.File JavaDoc;
30 import java.io.FileInputStream JavaDoc;
31 import java.io.OutputStream JavaDoc;
32 import java.util.HashMap JavaDoc;
33
34 import javax.imageio.ImageIO JavaDoc;
35 import javax.servlet.ServletContext JavaDoc;
36 import javax.servlet.http.HttpServlet JavaDoc;
37 import javax.servlet.http.HttpServletRequest JavaDoc;
38 import javax.servlet.http.HttpServletResponse JavaDoc;
39
40 import com.geinuke.bizlogic.BLException;
41
42 public class ImageServlet extends HttpServlet JavaDoc{
43     
44     
45     protected static HashMap JavaDoc numbers=null;
46     static{
47         numbers=new HashMap JavaDoc();
48         numbers.put("1","6327");
49         numbers.put("2","8437");
50         numbers.put("3","1231");
51         numbers.put("4","4845");
52         numbers.put("5","6783");
53     }
54     
55     protected int rnd(int max){
56         long res=0;
57         res=(Math.round(Math.random()*100000)%(max+1)) +1;
58         
59         return (int)res;
60     }
61     protected void showStaticImage(HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res){
62         try{
63             res.setContentType("image/gif");
64             OutputStream JavaDoc os=null;
65             os=res.getOutputStream();
66             int ind=this.rnd(4);
67             
68             File JavaDoc f=new File JavaDoc(GeiServlet.getNukePath()+"/images/number"+ind+".gif");
69             FileInputStream JavaDoc fin = new FileInputStream JavaDoc(f);
70
71             byte[] buf = new byte[4096];
72             int count = 0;
73             while(true) {
74                 int n = fin.read(buf);
75                 if(n == -1) {
76                     break;
77                 }
78                 count = count + n;
79                 os.write(buf,0,n);
80             }
81             
82             String JavaDoc value=(String JavaDoc)numbers.get(ind+"");
83             req.getSession(true).setAttribute("ImageValue",value);
84             os.flush();
85             os.close();
86             fin.close();
87         }catch(Exception JavaDoc e){
88             System.out.println("\nERRORE in showStaticImage\n"+e);
89         }
90     }
91     
92     public void service(HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res){
93         ServletContext JavaDoc sc = null;
94         BufferedImage JavaDoc bi=null;
95         bi=new BufferedImage JavaDoc(60,40,BufferedImage.TYPE_INT_RGB);
96         OutputStream JavaDoc os=null;
97         try{
98             if(1==1)
99                 throw new BLException();
100             Graphics2D JavaDoc gr=bi.createGraphics();
101             gr.setBackground(Color.GRAY);
102             long i=Math.round(Math.random()*100000)%99999;
103             gr.drawString(""+i,0,0);
104             res.setContentType("image/gif");
105             os=res.getOutputStream();
106             
107             
108             ImageIO.write(bi,"gif",os);
109             req.getSession(true).setAttribute("ImageValue",""+i);
110             os.flush();
111             os.close();
112         }catch(Throwable JavaDoc e){
113             showStaticImage(req,res);
114             
115             GeiServlet.intLog("ERRORE in ImageSevlet"+e);
116             //e.printStackTrace();
117
}
118     }
119 }
120
Popular Tags