# HttpServletResponse und externe CSS



## KaffeeKlaus (16. Mrz 2010)

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


----------



## maki (16. Mrz 2010)

Kein Browser darf/kann auf irgendwas unter WEB-INF zugreifen.


----------



## Noctarius (16. Mrz 2010)

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 (17. Mrz 2010)

Noctarius hat gesagt.:


> ...
> 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 (17. Mrz 2010)

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 (17. Mrz 2010)

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 (17. Mrz 2010)

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 (17. Mrz 2010)

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!


----------



## Noctarius (17. Mrz 2010)

Kein Problem


----------

