ich habe ein Servlet geschrieben, das aus einer Access-DB über die JDBC-ODBC-Brücke eine Bitmap-Grafik im aufrufenden Browser anzeigen soll.
Blöderweise erscheint aber keine Grafik sondern die uninterpretierten Bytes (trotz MIME-Typ „image/bmp“).
Um die Anfrage klein zu halten, hier der Link zur erhaltenen Ausgabe: http://www.marcbaehr.de/Servlet3.java.txt
und zum Servlet: http://www.marcbaehr.de/Servlet3.html
Ich habe aufgrund meiner geringen Erfahrung mit Java einiges aus anderen Servlets etc. zusammengesetzt, so dass ich nunmehr nicht mehr den Überblick habe, woran das ganze scheitert (Abgesehen von den überflüssigen Codezeilen…. Leider helfen mir die vielen Tutorials in dieser Frage auch nicht weiter.
logisch geht das ned… du schreibst die Daten ja auch mitten in deinen HTML-Code rein… du kannst ja nicht HTML und die Grafik mit einem Servlet produzieren…
das Servlet sollte nur(!) die Grafik ausgeben und dann baust du dir eine HTML-Seite wo du mit das Ding anzeigst.
Nochmal zurück gefragt: Das einzige was ein Servlet kann ist also HTML-Code erzeugen (so wie Skriptsprachen) oder aber Datenströme wie Bilder direkt an irgendwelche abfragenden Elemente (HTML-Seiten, Applets, andere Servlets) übergeben?
Danke dass Du meine leider etwas laienhafte Herangehensweise duldest und mir trotzdem antwortest
Nochmal zurück gefragt: Das einzige was ein Servlet kann ist
also HTML-Code erzeugen (so wie Skriptsprachen) oder aber
Datenströme wie Bilder direkt an irgendwelche abfragenden
Elemente (HTML-Seiten, Applets, andere Servlets) übergeben?
Naja mit Servlet hat das direkt nichts zu tun, das ist einfach das HTTP-Protokoll… Jeder Aufruf kann nur einen Datentyp erzeugen. Du kannst nicht innerhalb der Ausgabe den Content-type wechseln: Entweder du gibst HTML ODER eine Grafik ODER sonstwas aus, aber nicht alles gleichzeitig.
Umgehen kannst du das mit mehreren Servlets, eins dass das HTML produziert und ein anderes aufruft, das die Grafik einbindet. Wobei du dies nur tun solltest, wenn der HTML-COde auch dynamisch sein soll. Wenn der Text umd as Bild rum eh immer der gleiche ist, dann brauchst du dafür gar kein Servlet sondern nimsmt eine statische HTML-Seite und tust nur die Grafik per Servlet einfügen
oder du schreibst ein Applet, das das gewünschte Bild (Bild-ID) an das Servelt schickt, und dies das Bild von der DB holt und als Image zurücksendet. Das Applet kann das Bild dann mit paint darstellen.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
oder du schreibst ein Applet, das das gewünschte Bild
(Bild-ID) an das Servelt schickt, und dies das Bild von der DB
holt und als Image zurücksendet. Das Applet kann das Bild dann
mit paint darstellen.
Sicherlich möglich… aber relativ umständlich und wo man Applets vermeiden kann sollte man dies meiner Ansicht nach tun.
Applets haben zum Teil Probleme mit gewissen Browsern, Applets können Sicherheitsrisiken bergen, weswegen viele User Java im Browser deaktivieren, Applets sind langsam, der besucher kann das Bild nicth so einfach speichern (ok dies kann auch gewünscht sein) und und und.
Und der vielleicht überzeugendste Grund:
Was hier gefordert wird geht ohne Applet sogar wesentlich leichter