1 2 3 24 package com.geinuke.servlet; 25 26 import java.awt.Color ; 27 import java.awt.Graphics2D ; 28 import java.awt.image.BufferedImage ; 29 import java.io.File ; 30 import java.io.FileInputStream ; 31 import java.io.OutputStream ; 32 import java.util.HashMap ; 33 34 import javax.imageio.ImageIO ; 35 import javax.servlet.ServletContext ; 36 import javax.servlet.http.HttpServlet ; 37 import javax.servlet.http.HttpServletRequest ; 38 import javax.servlet.http.HttpServletResponse ; 39 40 import com.geinuke.bizlogic.BLException; 41 42 public class ImageServlet extends HttpServlet { 43 44 45 protected static HashMap numbers=null; 46 static{ 47 numbers=new HashMap (); 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 req, HttpServletResponse res){ 62 try{ 63 res.setContentType("image/gif"); 64 OutputStream os=null; 65 os=res.getOutputStream(); 66 int ind=this.rnd(4); 67 68 File f=new File (GeiServlet.getNukePath()+"/images/number"+ind+".gif"); 69 FileInputStream fin = new FileInputStream (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 value=(String )numbers.get(ind+""); 83 req.getSession(true).setAttribute("ImageValue",value); 84 os.flush(); 85 os.close(); 86 fin.close(); 87 }catch(Exception e){ 88 System.out.println("\nERRORE in showStaticImage\n"+e); 89 } 90 } 91 92 public void service(HttpServletRequest req, HttpServletResponse res){ 93 ServletContext sc = null; 94 BufferedImage bi=null; 95 bi=new BufferedImage (60,40,BufferedImage.TYPE_INT_RGB); 96 OutputStream os=null; 97 try{ 98 if(1==1) 99 throw new BLException(); 100 Graphics2D 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 e){ 113 showStaticImage(req,res); 114 115 GeiServlet.intLog("ERRORE in ImageSevlet"+e); 116 } 118 } 119 } 120 | Popular Tags |