# tomcat anwendungsabhängige konfigdateien



## max40 (27. Sep 2012)

hallo,
wo legt man konfigurationsdateien im tomcat ab, z.B. enthalten diese die adresse vom datenbankserver.
habe leider dazu nichts gefunden.

danke gruß
max


----------



## gp (27. Sep 2012)

Im WEB-INF Ordner

Gesendet von meinem GT-P7501 mit Tapatalk 2


----------



## max40 (27. Sep 2012)

dort dann in den classes Ordner oder direkt in den WEB-INF?
im classes Ordner greife ich mit 
	
	
	
	





```
getClass().getResourceAsStream("/myprops.properties");
```
 drauf zu, wie würde ich das dann machen wenn die myprops.properties direkt im WEB-INF oder z.B. WEB-INF/configs liegt?

Gruß
Max


----------



## nillehammer (28. Sep 2012)

Also ich persönlich nutze gerne context-param-Elemente direkt in der web.xml. Braucht man keine extra Datei, weil die web.xml sowieso schon da ist. Zugriff auf die params mit:

```
ServletContext context = ...;
context.getInitParameter("paramName");
```



> wie würde ich das dann machen wenn die myprops.properties direkt im WEB-INF oder z.B. WEB-INF/configs liegt?




```
context.getResourceAsStream("/WEB-INF/myprops.properties");
```

Wie Du an den ServletContext rankommst, weißt Du?


----------



## max40 (28. Sep 2012)

Danke.
Momentan weis ich es noch nicht wie ich aus der normalen java-klasse ohne den Context zu übergeben drauf zugreife.


----------



## gp (28. Sep 2012)

max40 hat gesagt.:


> Danke.
> Momentan weis ich es noch nicht wie ich aus der normalen java-klasse ohne den Context zu übergeben drauf zugreife.



Du koenntest eine statische Klasse oder eine Singleton-Klasse bauen, welche globale Variablen enthaelt. Alternativ erzeugt dein Servlet die Klasse und uebergibt per Konstruktor oder Setter den Dateinamen.

guenter via tapatalk


----------



## nillehammer (28. Sep 2012)

> Momentan weis ich es noch nicht wie ich aus der normalen java-klasse ohne den Context zu übergeben drauf zugreife.


Versuche, das zu vermeiden. Damit "leckt" Deine Präsentationstechnologie (hier Web) in Deine Klassen rein, wo sie eigentlich nicht hingehört. Es gibt verschiedenste Stellen, die sich anbieten, z.B.:
- Klassischerweise Servlets (da ist es ganz leicht)
- Gerade für den Aufbau von DB-Verbindungen bei Start der Webanwendung bietet sich auch ein ServletContextListener an. Hier in der contextInitialized(ServletContextEvent e)-Methode die DB-Verbindung öffnen.

Und, um es ganz fein zu machen und noch tiefer in die Materie einzusteigen, kannst Du die DB-Verbindungen in einem Pool verwalten, der vom Webcontainer als Datasource über JNDI bereit gestellt wird.


----------

