# Vorgehensweise: Bilder anzeigen/erstellen in JSP/Servlet ?



## Halunken-Joe (4. Mai 2008)

Hallo alle zusammen,

ich möchte einmal nach einer prinzipiellen Vorgehensweise fragen:

Ich möchte gerne Daten, die in einer Datenbank liegen visualisieren, also als Grafiken  (Charts oder Balkengrafiken) darstellen.

Normalerweise arbeite ich mit JSP's, aber zum Anzeigen dieser Grafiken benütze ich ein Servlet denn ich wüßte nicht wie ich es mit JSP's hinkriegen könnte (es sei ich lade diese Grafiken von der Festplatte).

Ich kann mir Servlets schreiben die Text ausgeben (PrintWriter) oder Servlets schreiben die Grafiken ausgeben (ServletOutputStream) aber ich kriege es nicht hin ein Servlet zu schreiben das Text und Grafik ausgibt. Die Grafik wird mir als Text (ein Haufen wirrer Zeichen) angezeigt

Das beste was mir bisher eingefallen ist, ist:


```
response.setContentType("text/html;charset=UTF-8");
			
ServletOutputStream sos = response.getOutputStream();

//text ausgeben - funktioniert auch	
sos.println("<html><head></head><body>\r\n");
sos.println("Hello [b]Servlet[/b]\r\n");
sos.println("

\r\n");

//grafik erstellen
int width = 300;
int height = 100;
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();

g.setColor(Color.WHITE);
g.fillRect(0,0,width,height);
g.dispose();

//Grafik ausgeben -> nur Textzeichen, kein Bild
response.setContentType("image/jpeg");
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
encoder.encode(image); 

//und wieder Text ausgeben
response.setContentType("text/html;charset=UTF-8");
sos.println("
\r\n");
sos.println("</body></html>\r\n");
```

Ich würde es auch vorziehen ein JSP zu schreiben um den HTML Kram zu erschlagen und die Grafik z.B. in einer Bean zu erzeugen. Würde das gehen?

Muß ich vielleicht mit dem RequestDispatcher arbeiten und ein zweites Servlet (was nur ein Bild erzeugt) in das erste Servlet einbinden? Wäre das die Lösung?

Ich habe versucht das Problem nachzuschlagen und auch hier im Forum gesucht aber nichts gefunden. Kann mir jemand einen Tip geben wie ich das Problem am Besten erschlagen kann?

Vielen Dank vorab!


----------



## The_S (5. Mai 2008)

Was spricht gegen eine JSP, die dein Picture-Servlet über einen ganz normalen image-tag einbindet?


----------



## Halunken-Joe (5. Mai 2008)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Was spricht gegen eine JSP, die dein Picture-Servlet über einen ganz normalen image-tag einbindet?



Das war die zündende Idee. Vielen Dank! Das ist zu einfach als das man selbst darauf kommen könnte.  

Für alle, die es nicht verstanden haben:

Man schreibt ein Servlet das ein Bild erzeugt und per ServletOutputStream ausgibt. Dann mappt man das Servlet in der web.xml (zumindest heißt das File bei mir so) beispielsweise auf den url-pattern /bildErzeugen

Und im JSP lautet der Code:


```
[img]bildErzeugen[/img]
```


----------



## Halunken-Joe (5. Mai 2008)

Doppelposting ...


----------

