Servlets und Bilder

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo!

Hätte da eine Frage:

Ich habe ein Servlet geschrieben und versuche mir nun wie in HTML ein Bild anzeigen zu lassen. Das funktioniert aber nicht. Muß ich in das web.xml File den Ordner wo die Bilder liegen angeben, damit die Bilder gefunden werden?
Falls ja wie macht man das? Oder hat sonst irgendjemand eine Idee wo mein Fehler liegen könnte?

Quellcode für Image:





Danke für alle Antworten im voraus!
 
@

@bronks

Gast
Ja ich kann das Bild im Browser öffnen!

Nähere Informationen:

Das Servlet von mir liegt im Ordner test im tomcat ordner servlet-examples. Der Ordner images mit dem Bild liegt in diesem Ordner test drin.

Den Pfad zur Bilddatei habe ich im Servlet wie folgt angegeben:

/test/Bild1.jpg.

Also eigentlich so wie man es in HTML auch macht. Aber aus irgendeinem Grund wird das Bild nicht geladen!
 

bronks

Top Contributor
@bronks hat gesagt.:
Da kann eigentlich nur der Pfad verkehrt sein. Laß auf jeden Fall den ersten Slash weg.

So wie ich Deinen letzen Post verstanden habe müßte es eigentlich so heißen:

Code:
[img]test/images/Bild1.jpg[/img]
 
@

@bronks

Gast
Ja Sorry!

Hab das mit dem Ordner images vergessen. Aber auch wenn ich den ersten Slash weglasse, funktioniert das nicht!
 

bronks

Top Contributor
Der gleiche Dateiname, den Du in Deiner App in eine JSP bzw. HTML schreiben würdest gehört auch in das Servlet. Alle Pfade sind relativ zum Kontextpfad.

Ich empfehle Dir für diesen Test eine eigene Webapp zu erstellen. Für die servlet-examples habe ich noch nie interessiert, aber es kann sein, daß da etwas spezielles im Weg steht.
 
@

@bronks

Gast
bronks hat gesagt.:
Der gleiche Dateiname, den Du in Deiner App in eine JSP bzw. HTML schreiben würdest gehört auch in das Servlet. Alle Pfade sind relativ zum Kontextpfad.

Das habe ich ja gemacht! Aber das funktioniert ja nicht.

Ich empfehle Dir für diesen Test eine eigene Webapp zu erstellen. Für die servlet-examples habe ich noch nie interessiert, aber es kann sein, daß da etwas spezielles im Weg steht.

Hier sehe ich keinen Sinn darin! Deswegen bleibt das Problem trotzdem bestehen.

Aber ne Frage: Kannst du mir sagen, was es mit response.setContentType("image/*") auf sich hat? Ich glaube nämlich, dass es daran liegt! Ich habe ja den response.setContentType("text/html") gesetzt.
 

bronks

Top Contributor
@bronks hat gesagt.:
... Aber ne Frage: Kannst du mir sagen, was es mit response.setContentType("image/*") auf sich hat? Ich glaube nämlich, dass es daran liegt! Ich habe ja den response.setContentType("text/html") gesetzt.
Den ContentType image nimmt man, wenn das Servlet ein Image streamen soll. Für Dein Beispiel ist text/html richtig.
 

Bleiglanz

Gesperrter Benutzer
soll das heissen du hast ein Servlet, das das Bild "streamen" soll, d.h. das Servlet ist auf die URL

test/images/Bild1.jpg

gemappt? Dann den image-contenttype (oder gleich jpeg) und die Bytes direkt in den OutputStream schreiben
 
G

Guest

Gast
Das wird jetzt langsam kompliziert! Ich stell euch hier mal meinen Quellcode rein.
Zur Info:
Das Servlet holt anhand einer übergebenen ID Daten aus der DB und schreibt Sie in die dafür vorgesehenen Bereiche. Dies soll später auch für das Bild funktionieren. Aber momentan wäre ich schon ganz froh, wenn ich mir zuerst einmal irgendein Bild normal anzeigen lassen könnte. Der Rahmen der die Größe des Bildes angibt, wird angezeigt. Wenn ich im Browser dort auf Bild anzeigen gehe, kommt die Fehlermeldung, " Das die gesuchte Resource nicht gefunden werden kann" obwohl das die im selben Ordner liegt. Nämlich /servlet-examples/classes/test/images.


package test;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
import java.util.*;

public class Mitglied extends HttpServlet implements Serializable {
private static final String CONTENT_TYPE = "text/html";




//Process the HTTP Get request
public void service(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException
{
String strTextfeld1, strTextfeld2;
Connection con = null;
Statement stmt = null;
PrintWriter out = null;


ResultSet rs = null;
strTextfeld1 = request.getParameter("BID");
strTextfeld2 = request.getParameter("Trainingsdatum");
String wert1;
String wert2;
String wert3;
String wert4;
String wert5;
String wert6;
String wert7;
String wert8;
String wert9;
String wert10;
String wert11;
response.setContentType(CONTENT_TYPE);
out = response.getWriter();


try
{
Class.forName("com.mysql.jdbc.Driver");
try
{
con = DriverManager.getConnection("jdbc:mysql://localhost/test","root","root");
}
catch (Exception ex){}
try
{
stmt = con.createStatement();
}
catch (Exception ex){}
try
{
rs = stmt.executeQuery("SELECT Name,Vorname,Strasse,Hausnummer,PLZ,Wohnort,Geburtsdatum,Bild,Beitrag,Vertragsbeginn,Vertragsende FROM Mitgliedsdaten WHERE BID='"+strTextfeld1+"'");
}
catch (Exception ex){}
out.println("<html>");
out.println("<head>");
out.println("<title>Mitgliedsinformationen</title>");
out.println("</head>");
out.println("<body text='#000000' bgcolor='#FFFF00' link='#FF0000' alink='#FF0000' vlink='#FF0000'>");
out.println("<center>");
out.println("<h1>Mitgliedinformationen</h1>");
out.println("<table>");
out.println("<input type='hidden' name='BID' value='"+strTextfeld1+"'>");


try
{
while (rs.next())
{
out.println("<tr>");
response.setContentType("image/*");
out.println("<td>
Bild1.jpg
</td>");

response.setContentType(CONTENT_TYPE);
out.println("<td>&&&&&</td>");
out.println("<td> Name:");
out.println("

Vorname:");
out.println("

Strasse:");
out.println("

Hausnummer:");
out.println("

PLZ:");
out.println("

Wohnort:");
out.println("

Geburtsdatum:");
out.println("

Vertragsart:");
out.println("

Vertragsbeginn:");
out.println("

Vertragsende:");
out.println("
</td>");
out.println("<td>&&&&&</td>");

wert1 = rs.getString("Name").trim();
wert2 = rs.getString("Vorname").trim();
wert3 = rs.getString("Strasse").trim();
wert4 = rs.getString("Hausnummer").trim();
wert5 = rs.getString("PLZ").trim();
wert6 = rs.getString("Wohnort").trim();
wert7 = rs.getString("Geburtsdatum").trim();
wert8 = rs.getString("Bild").trim();
wert9 = rs.getString("Beitrag").trim();
wert10 = rs.getString("Vertragsbeginn").trim();
wert11 = rs.getString("Vertragsende").trim();

out.println("<td>" + wert1);
out.println("

" + wert2);
out.println("

" + wert3);
out.println("

" + wert4);
out.println("

" + wert5);
out.println("

" + wert6);
out.println("

" + wert7);
out.println("

" + wert9);
out.println("

" + wert10);
out.println("

" + wert11);
}

}
catch (Exception ex){}

out.println("</td>");
out.println("</tr>");
out.println("</table>");
out.println("
");
out.println("

Training</p>");
out.println("</center>");
out.println("</body>");
out.println("</html>");



}
catch (ClassNotFoundException e)
{
out.println(e.getMessage());
}
finally
{
try
{
if (con != null) con.close();
}
catch (SQLException ignored) {}
}
}

}
 

Bleiglanz

Gesperrter Benutzer
servlet-examples/classes/test/images.

du meinst wohl WEB-INF/classes?

Dateien die unterhalb des WEB-INF Ordners liegen können vom Webcontainer nicht an clients ausgeliefert werden!
 
@

@Bleiglanz

Gast
Bleiglanz hat gesagt.:
servlet-examples/classes/test/images.

du meinst wohl WEB-INF/classes?

Genau! Also ganz genau: servlet-examples/web-inf/classes/test/images.

Bleiglanz hat gesagt.:
Dateien die unterhalb des WEB-INF Ordners liegen können vom Webcontainer nicht an clients ausgeliefert werden!

Heißt das, dass wenn ich den Ordner images, außerhalb des Web-inf Ordners verschiebe und den Link daraufhin ausrichte das Bild dann angezeigt werden sollte?

Ich habe das aber auch schon mal über die nicht ganz elegante Methode file:///C:............ versucht. Und es hat auch nicht funktioniert!
 

Bleiglanz

Gesperrter Benutzer
doch, das funktiniert

gib einen pfad absolut zur Wurzel deiner webapp an

z.B.

/images/foo.jpg

oder

das ist jetzt reines HTML: wenn dein Servlet auf /eins/zwei/drei/Foo gemappt ist, dann muss das src natürlich relativ zu DIESER Url angegeben werden)
 
G

Guest

Gast
Hab die Sache jetzt über einen Apache Webserver gelöst. Jetzt funktioniert es.

Danke für eure Hilfe!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JSP Servlets/ Java Klassen für FTP FileUpload (Bilder) + DB Allgemeines EE 3
K Servlets Allgemeines EE 1
B Intellij + WebSphere, Servlets aufrufen Allgemeines EE 1
S JSP, JSF Servlets etc. Empfehlung Allgemeines EE 13
aze Eclipse Java EE Web Project:Wo liegen die Servlets ? Allgemeines EE 4
c_sidi90 Gute Bücher/Tutorials für Einstieg in JSP/Servlets Allgemeines EE 3
A Startseite bei Servlets Allgemeines EE 2
R Sourcen einbinden von J2EE bzw auch für Servlets in Eclipse Allgemeines EE 8
W Übliche Art "lokale" Parameter an Servlets zu über Allgemeines EE 2
D AJAX oder Servlets Allgemeines EE 6
J Sicherheit von Servlets Allgemeines EE 3
G Response bei Servlets Allgemeines EE 5
K Sriplets & Servlets: Offline Projekt auf Server realisie Allgemeines EE 2
M Servlets und Webcrawler Allgemeines EE 4
D JSP/Servlets Buchempfehlung Allgemeines EE 11
C Servlets in Eclipse ausführen Allgemeines EE 5
D Servlets richtig verstehen Allgemeines EE 23
A Servlets: Service-Methoden generell Allgemeines EE 2
I JBOSS IDE EJB 3.0 Servlets JSP Applikation --> JSF sinnvo Allgemeines EE 2
M Servlets | work - Klassen nicht im WAR File Allgemeines EE 5
J Bean in der init-Methode des Servlets instanzieren Allgemeines EE 9
T Servlets: doGet, doPost und service Allgemeines EE 4
M Hosting (inkl. Servlets) Allgemeines EE 25
D Controller-Klassen eines Servlets testen mit JUnit Allgemeines EE 3
M Kommunikation zwischen zwei Servlets Allgemeines EE 5
S gibts ne spezielle möglichkeit applets mit servlets auszugeb Allgemeines EE 3
S aufrufende url bei servlets herausfinden Allgemeines EE 4
I Zusammenspiel Portlets, Servlets und JSPs Allgemeines EE 3
Z Property Datei in Servlets Allgemeines EE 2
S Fragen zu: Servlets, Struts & Hibernate Allgemeines EE 9
S Umlaute und Servlets Allgemeines EE 5
F Servlets und JSP Allgemeines EE 6
P E-mails alias über Servlets einrichten bei Strato- Allgemeines EE 16
G Verständnisfrage zu EJB vs. Servlets Allgemeines EE 3
A Servlets bei Tomcat-Startup starten Allgemeines EE 5
L SVG & Servlets Allgemeines EE 9
J Buchempfehlung: Servlets, JSP, Struts, JSTL Allgemeines EE 3
P Wie Log4J in JSP's, Beans und Servlets am besten einbinden Allgemeines EE 2
M Probleme beim Performancetuning des Servlets Allgemeines EE 2
C JSP funzt in Tomcat, Servlets nicht Allgemeines EE 5
G JSP und Servlets (einfaches MVC-Modell) Allgemeines EE 2
G Mehrere Probleme mit Servlets/Java Allgemeines EE 15
T Grundlegendes Verständnis - Beans, JSP und Servlets Allgemeines EE 3
F Servlets aufrufen Allgemeines EE 5
thE_29 Allg. Frage zu JSP/Servlets Allgemeines EE 2
T Jsp die mehrere Servlets aufruft erzeugt Fehler Allgemeines EE 10
F relativer Pfad in Servlets für Dateien Allgemeines EE 2
R Servlets in ECLIPSE programmieren Allgemeines EE 3
X servlets und character encoding Allgemeines EE 4
A Frage zu Servlets Allgemeines EE 5
M Cookies mit Servlets Allgemeines EE 6
J Servlets und PrintWriter Allgemeines EE 5
H Servlets nacheinander abarbeiten Allgemeines EE 3
B Servlets werden gemappt --- aus und schluß, so ist es! Allgemeines EE 4
M Fragen zu Servlets Allgemeines EE 5
T Zwei Buttons in derselben FORM rufen unterschied. Servlets a Allgemeines EE 10
K Sun Application Server - Servlets laufen nicht Allgemeines EE 2
J Connectionpools mit BEA und Servlets Allgemeines EE 4
T Servlets und Dateizugriff auf dem Server Allgemeines EE 5
T Servlets in eclipse schreiben !! Allgemeines EE 5
S Servlets zum laufen bringen mit J2EE Allgemeines EE 3
A Leerzeilen in HTML-Seite, nach Erzeugen des Servlets Allgemeines EE 3
R Mehrere Bilder gleichzeitig bzw. dynamisch eines Objektes speichern Allgemeines EE 2
F Mehrere Bilder aus MySQL DB via Servlet darstellen. Allgemeines EE 1
D Wohin mit Resourcen (Bilder, txt Dateien) im Application Client Allgemeines EE 3
C GWT: Zur Laufzeit Bilder hinzufügen Allgemeines EE 4
M JSF Bilder werden wegen jsessionid nicht gefunden (nur IE) Allgemeines EE 6
J Gif Bilder in Easy Eclispe? Allgemeines EE 4
S JSF: Bei Navigation Bilder / Styles nicht mehr verfügbar Allgemeines EE 1
R Bilder in HTML Tabelle ermitteln Allgemeines EE 2
M Servlet (Bilder aus Datenbank liefern) läuft nur einige Zeit Allgemeines EE 12
O Tomcat bilder schützen Allgemeines EE 4
M Bilder im JBoss ausserhalb von .war Allgemeines EE 2

Ähnliche Java Themen

Neue Themen


Oben