# Fragen zu Servlets



## MeinerEiner (21. Dez 2004)

Hallo,

ich möchte/soll/muss eine dynamische Homepage machen, realisiert mit Servlets, JSP und Tomcat. Ich stieß dabei jetzt auf einige Fragen:




			
				1. Frage hat gesagt.:
			
		

> Soll ich die Aktivitäten des User mit Cookies oder mit Sessions verfolgen? Was ist besser? Wovon hängt meine Wahl ab?





			
				2. Frage hat gesagt.:
			
		

> Gibt es irgendwelche allgemeinen Tipps oder Tricks, die man bei einem solchen Projekt beachten muss? Welche Fehler sind euch dabei schon passiert (aus Fehlern lernt man bekanntlich)?





			
				3. Frage hat gesagt.:
			
		

> Ich arbeite auch mit einer Datenbank (voraussichtlich MySQL). Soll ich für jeden Benutzer eine eigene Verbindung herstellen oder besser nur eine Verbindung für das Serlvet, und das Servlet selbst regelt die Zugriffkontrolle?





			
				4. Frage hat gesagt.:
			
		

> Die Zusammenhänge und Kommunikation zwischen Methoden des Servlets, den JSP-Seiten usw wird mit der Zeit etwas unübersichtlich. Wie kann ich mir das am Besten veranschaulichen, ohne den Überblick zu verlieren (Sequenzdiagramme oder etwas anderes)? Da man mit Zettel und Stift recht unflexibel bzgl. Änderungen ist, wäre ich für Links zu irgendwelchen (freien) Programmen dankbar.



Danke im voraus!

MfG


----------



## foobar (21. Dez 2004)

> Soll ich die Aktivitäten des User mit Cookies oder mit Sessions verfolgen? Was ist besser? Wovon hängt meine Wahl ab?


Sessiontracking ist auf jeden Fall die bessere Alternative.



> Ich arbeite auch mit einer Datenbank (voraussichtlich MySQL). Soll ich für jeden Benutzer eine eigene Verbindung herstellen oder besser nur eine Verbindung für das Serlvet, und das Servlet selbst regelt die Zugriffkontrolle?


Für den Datenbankzugriff empfiehlt sich eine Datasource respektive Connectionpool.



> Gibt es irgendwelche allgemeinen Tipps oder Tricks, die man bei einem solchen Projekt beachten muss?


Arbeite mit einem Framework z.b. Struts, dadurch ersparst du dir viel Arbeit und das ganze Projekt bleibt übersichtlicher. Falls du auf Software Dritter verzichten willst, solltest du dir eine eigenes kleines Framework nach dem MVC erstellen.


----------



## MeinerEiner (21. Dez 2004)

Danke für die Antworten!



			
				foobar hat gesagt.:
			
		

> Für den Datenbankzugriff empfiehlt sich eine Datasource respektive Connectionpool.


Hab ich das jetzt richtig verstanden?
Es wird für jede Session eine eigene Verbindung zur Datenbank (die dann natürlich mit Zugriffsrechten usw. konfiguriert wird) erstellt, alle zusammen in einer Klasse (und darin in irgend einer Datenstruktur), die das Interface _DataSource_ berücksichtigt bzw. implementiert.



			
				foobar hat gesagt.:
			
		

> Arbeite mit einem Framework z.b. Struts, dadurch ersparst du dir viel Arbeit und das ganze Projekt bleibt übersichtlicher. Falls du auf Software Dritter verzichten willst, solltest du dir eine eigenes kleines Framework nach dem MVC erstellen.


Ich werde letzteres machen, also ein eigenes (kleines) Framework schreiben bzw. versuchen zu schreiben.

MfG


----------



## foobar (21. Dez 2004)

> Es wird für jede Session eine eigene Verbindung zur Datenbank (die dann natürlich mit Zugriffsrechten usw. konfiguriert wird) erstellt, alle zusammen in einer Klasse (und darin in irgend einer Datenstruktur), die das Interface DataSource berücksichtigt bzw. implementiert.


Nein, nicht ganz. Beim Start der Anwendung wird eine bestimmte Anzahl Verbindungen erstellt und in einem Pool abgelegt. Wenn eine Verbindung benötigt wird, kann man sich aus dem Pool eine Connection holen, die entsprechenden Datenbankoperationen durchführen und danach die Connection wieder an den Pool zurückgeben.


----------



## MeinerEiner (21. Dez 2004)

Aha.

Aber dann können zB nicht mehr als 20 User (weil 20 Connections) gleichzeit auf die Datenbank zugreifen, oder?


----------



## Bleiglanz (21. Dez 2004)

wenn du deinen HTTP Request in 50-100 ms abarbeiten kannst, dann wird nach dieser Zeit die Connection wieder zurückgegeben - bei korrekter Verwendung des Pools!

d.h. ABSOLUT gleichzeitig können nur 20 arbeiten, aber wie oft kommt das schon vor (der 21. wartet dann, bis der Pool eine neue rausgibt)


----------

