Vorgehensweise: Bilder anzeigen/erstellen in JSP/Servlet ?

Status
Nicht offen für weitere Antworten.

Halunken-Joe

Aktives Mitglied
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:

Code:
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

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

Halunken-Joe

Aktives Mitglied
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:

Code:
[img]bildErzeugen[/img]
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Vorgehensweise Programmierung eines kleinen Tools Web Tier 4
R JSF Bilder aus CSS Datei werden nicht angezeigt. Web Tier 2
H JSF jsf/sessionScoped Bean - Bilder (jpg) werden nicht richtig dargestellt Web Tier 1
N Bilder aus Datenbank dynamisch in JSF streamen Web Tier 7
S JSF Primefaces Thema, Css wird geladen, nur die Bilder nicht, bzw Resource wird nicht aufgelöst Web Tier 5
H im IE werden leere Bilder mit X gekennzeichnet Web Tier 4
K Bilder nach dem Upload nutzen Web Tier 10
K Bilder in Java-Webapplikationen Web Tier 12
M Bilder in Servlets Web Tier 8
M JSP Custom Tag für Bilder Web Tier 14
D Bilder werden nicht angezeigt Web Tier 2
D Bilder werden nicht angezeigt Web Tier 21
N JSF: Servlet für Bilder: Verbindung zu Spring Service ? Web Tier 1
Phash JSF - SelectOneMenu Property anzeigen Web Tier 3
B Berechnen und Anzeigen von Formeln aus der Chemie und Physik mit JSP und Bean Web Tier 14
P JSP Besucherinformationen anzeigen Web Tier 2
R Bild aus Datenbank ausgeben/anzeigen Web Tier 5
V Bild aus ArrayList via h:graphicImage anzeigen lassen Web Tier 4
I Image temporär erzeugen und anzeigen? Web Tier 2
L GWT - Icon in Caption von DialogBox anzeigen? Web Tier 2
J a4j-MediaOutput / Seam 2.1 : jpg lassen sich nur bis 5 KB anzeigen Web Tier 3
I JSF Nur max 20 Datensätze anzeigen lassen, dann nächste Seite Web Tier 8
R Status als Bild anzeigen lassen. Wie? Web Tier 15
R Felder nicht anzeigen lassen! Wie geht das? Web Tier 4
E JSF Datatable erst nach Buttonklick anzeigen Web Tier 2
E JSF Datatable leere Zellen anzeigen Web Tier 2
H [MySQL, Servlet] Blob anzeigen Web Tier 5
remus outputText keine 0 anzeigen Web Tier 3
M Bei Weiterleitung von Servlet zu JSP: URL der JSP anzeigen Web Tier 6

Ähnliche Java Themen

Neue Themen


Oben