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