# Die sinnvolle Vorgehensweise



## bronks (6. Dez 2004)

Hi!

Ich hab innerhalb der letzten 3 Wochen 2 Bücher (Das Galileo Javabuch und Coreservlets und JSP von der Sunsoft Press) durchgearbeitet. Nebenbei hab ich mir noch einige Beispiele aus dem Internet zur Ansicht gefischt. Alle Services laufen, die Beispiele sind durchgekauft und verstanden ... Eigene Entwicklungen sind auch am laufen, aber die Technik ...

Bis auf ein paar Kleinigkeiten mit Ahaeffekt, welche nicht weiter Dokumentiert wurden habe ich nichts entdeckt, was ich mit CGI nicht genauso effizient lösen kann. Es waren hauptsächlich in den Büchern nur uninteressante Standalone JSPs und Servlets, welche sich ein paar Parameter zugeschoben haben. 

Das was ich im Internet so an Beispielen gefunden habe läuft immer auf die Art:
- Datenbank verbinden und Datenlesen
- Daten anzeigen
- Button oder Link wird geklickt 
- Ein anders JSP oder Servlet wird mit Parametern aufgerufen
- Datenbank verbinden und Datenlesen
- Daten anzeigen
- ..... usw. usw...

Da hat sich m.E. jemand bemüht etwas funktionierendes auf die Beine zu stellen. Ich glaube nicht wirklich, daß das die Technik ist, wie man mit Java auf dem Server arbeitet. 

Ich erwarte eigentlich eine einzige Datenbankverbindung, welche hunderte User gleichzeitig bedient und nicht, daß wegen jedem Hit auf die DB die Verbindung neu gebastelt werden muß. Servlets und JSPs haben Objekte im gemeinsamen Zugriff. Threads die auf gemeinsame Daten zugreifen und auch ihre eigenen Daten verwalten.

Hab ich mir zuviel vorgestellt? Kann mir jemand konkret etwas dazu sagen? Gibt es evtl. Beispiele, wie ich es mir vorstelle? Auch für Stichworte nach denen ich suchen kann bin ich dankbar.

Danke!

Bronks


----------



## Bleiglanz (6. Dez 2004)

> Ich erwarte eigentlich eine einzige Datenbankverbindung, welche hunderte User gleichzeitig bedient und nicht, daß wegen jedem Hit auf die DB die Verbindung neu gebastelt werden muß. Servlets und JSPs haben Objekte im gemeinsamen Zugriff. Threads die auf gemeinsame Daten zugreifen und auch ihre eigenen Daten verwalten.


DB -> das ist auch so: Stichwort DataSource 

geimeinsamer Zugriff -> Stichwort MVC (z.B. Struts)

aber: es gibt keine "Threads" am Server, ausser denjenigen, die bei einem HTTP Request jeweils gestartet werden [es gibt natürlich immer Wirrköpfe, die sowas implementieren]


----------



## Jockel (7. Dez 2004)

Bleiglanz hat gesagt.:
			
		

> > Ich erwarte eigentlich eine einzige Datenbankverbindung, welche hunderte User gleichzeitig bedient und nicht, daß wegen jedem Hit auf die DB die Verbindung neu gebastelt werden muß. Servlets und JSPs haben Objekte im gemeinsamen Zugriff. Threads die auf gemeinsame Daten zugreifen und auch ihre eigenen Daten verwalten.
> 
> 
> DB -> das ist auch so: Stichwort DataSource


Als alternatives Stichwort bei deiner Suche: 'Connection Pooling'.


----------



## bronks (7. Dez 2004)

Bleiglanz hat gesagt.:
			
		

> ... Stichwort MVC (z.B. Struts) ...


Ich hab mir die Sache mit den Struts mal angesehen. Das ganze ist ja so umfangreich und aufwendig, daß ich meine Zweifel hab, daß es sich für kleinere Projekte überhaupt lohnt. Auf der anderen Seite denke ich wieder, daß es sich eigentlich kaum lohnt Java auf dem Server zu benutzen, wenn man solche Techniken nicht richtig anwendet und alles andere ergibt einen schlechten Entwicklungsstil.


[quote="Jockel]'Connection Pooling'.[/quote]
Dazu findet man ja sehr viel. Hast Du evtl. einen Link, wo das Thema mit Java auf dem Webserver behandelt wird?


----------



## Bleiglanz (7. Dez 2004)

Hast du einen Tomcat?

Schau unter localhost:8080 die Doku an, ist der beste Start für Connection-Pooling/DataSources auf dem "Server"



> daß es sich eigentlich kaum lohnt Java auf dem Server zu benutzen, wenn man solche Techniken nicht richtig anwendet und alles andere ergibt einen schlechten Entwicklungsstil


das ist Quatsch, man kann auch ohne Struts (und alle anderen "Frameworks") gute, saubere Webanwendungen schreiben; dazu bastelt man sich eben selbst einen kleinen Controller usw.


----------



## bronks (7. Dez 2004)

Bleiglanz hat gesagt.:
			
		

> Hast du einen Tomcat? ... Connection-Pooling/DataSources auf dem "Server"


Hab mir schnell mal einen installiert. Die Doku ist brauchbar. Danke!




			
				Bleiglanz hat gesagt.:
			
		

> ... dazu bastelt man sich eben selbst einen kleinen Controller usw ...


Hast Du ne Ahnung, wo man sich sowetwas als einfach gehaltenes Beispiel ansehen kann?


----------



## bronks (26. Dez 2004)

Wer jetzt solche Verständnisprobleme hatte, wie ich vor ein paar Tagen noch, dem empfehle ich die Tuts vom JDeveloper und die Tuts von Netbeans. Die machen auf mich einen sehr sauberen und aufgeräumten Eindruck. 

Jetzt bin ich ein bissl angeckt und frage mich, wie man das wohl am sauberbsten löst. Immer wieder lese ich, daß ich Logik und Programmcode aus der JSP raushalten soll. Wie bringe ich jetzt am günstigesten eine Tabelle (Array) vom Controller in der JSP angezeigt?


----------



## Bleiglanz (27. Dez 2004)

im Controller

request.setAttribute

und in der jsp

<jsp:useBean

(das ist der "normale" übergabemechanismus)

und anzeigen dann mit den JSTL tags (foreach usw.)


----------



## bronks (28. Dez 2004)

Bleiglanz hat gesagt.:
			
		

> ... und anzeigen dann mit den JSTL tags (foreach usw.)


Aha! JSTL. Das werde mir unter die Lupe ziehen. Danke!


----------

