HttpServletResponse und externe CSS

KaffeeKlaus

Mitglied
Hallo,

ich möchte per HttpServletResponse HTML Code aus einer JSF-Webapplikation an den Client senden. Das funktioniert auch ganz gut, nur möchte ich in diesem generierten Code eine externe CSS laden.

Ich weiß aber nicht, mit welchem Pfad ich aus dem Code auf die CSS zugreifen soll, wenn sie z.B. unter WEB-INF liegt. Hat einer ne Ahnung, wie ich das anstellen kann? Ist bestimmt nur pillepalle, aber ich finde dazu keine Lösung.

Das Ganze läuft in Tomcat 6

Danke,
Klaus
 

Noctarius

Top Contributor
Ein StaticContent Servlet bauen, das die Datei als Bytestream einließt und in den OutputStream des Requests schreibt.

Alternativ die Datei nicht unter WEB-INF legen (was ja auch nur wenig Sinn macht).
 

KaffeeKlaus

Mitglied
...
Alternativ die Datei nicht unter WEB-INF legen (was ja auch nur wenig Sinn macht).


Ich frag mal anders: Wohin muss ich eine "styles.css" legen, wenn sie im HTML-Dokument so geladen wird:

[XML]<link rel="stylesheet" type="text/css" href="styles.css">[/XML]

Oder: Mit welchem Pfad soll ich die styles.css laden?

Sorry, ich bin noch ein ziemlichen Anfänger...
 

Noctarius

Top Contributor
Sie muss relativ zu dem Pfad liegen:

Wenn dein Servlet unter /foo/bar erreichbar ist und dein CSS-File direkt im Webapp-Verzeichnis deiner Webanwendung liegt ist es unter /foo/myFile.css erreichbar. Damit wäre der relative Pfad "../myFile.css".
 

KaffeeKlaus

Mitglied
Sicher, dass das auch geht, wenn ich den HTML-Code per HttpServletResponse an den Client schicke? Ich kann den Pfad zur CSS setzen wie ich will, es wird einfach nicht gefunden.
 

Noctarius

Top Contributor
Klar geht das. Der Browser sieht nicht das Servlet sondern eine Adresse (mit relativem Pfad zum Webapp-Context) und den HTML-Code der daraus kommt.

Zeig mal deinen Pfadaufbau und deinen entgültigen HTML-Code sowie das Mapping für das Servlet.

PS: Nein du kannst immer noch keine Files aus dem WEB-INF Ordner laden ohne ein spezielles Servlet (falls du das versucht hast)
 

KaffeeKlaus

Mitglied
Das Servlet Mapping wars, genau genommen die auskommentierte Zeile:

[XML] <servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
<!--<url-pattern>/</url-pattern>-->
</servlet-mapping>[/XML]

Danke für das Stichwort!
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...

Ähnliche Java Themen

Neue Themen


Oben