Newsgroup: it.comp.java
Titolo: jsp

Che tecniche usate per visualizzare dati letti da un DB in una pagina jsp?.
Grazie.
-- 
Osvaldo Frassine 
...alcuni guru di Open World si sono convertiti e hanno fatto i soldi,
come Linus Torvall, l'ideatore del sistema operativo Lynux (distribuito
a prezzi stracciati per fare concorrenza a Windows Xp);
							(Luca Panerai)

Grazie.
io metto il risultato della query in un bean, il bean nella request,
poi forwardo al jsp che visualizza tutto con delle custom tag library
che tra le altre cose mi gestiscono la divisione in pagine (tipo
google) ecc.
 

Una tecnica carina è usare delle tag libraries specificando in un tag la
query e con un altro tag estrai i campi del resultset che vuoi visualizzare.
Ce n'è un esempio nelle JSP 1.2 specifications, anche se non è mostrata
l'implementazione. In interent dovrebbe essere facile trovare il codice
relativo, magari sul sito di jakarta.

 ha scritto:

no il database va gestito nella business-logic, con una classe java
(non servlet) sul server (jit compilata e ottimizzata), nel jsp vanno
solo i risultati che possono essere formattati a piacere con delle tag
library. Se uno poi vuol emulare il php lo puo' fare ^__^ 

 
Vorrei cercare di capire gli svantaggi della tua soluzione. Ti spiego i miei: Io uso DOM+XSL.
Vantaggi:
Ho generato una classe assolutamente generica che riceve in input una stringa query e ritorna un oggetto di tipo org.w3c.dom.Document
Svantaggi:
Per ogni pagina devo generare un file xsl (e vabbe').
Ma sopratutto la manipolazione dell'oggetto DOM mi pare alquanto lenta.
Per esempio: se devo rileggermi il documento per girare le date dal formato yyyymmdd al formato ddmmyyyy;
<OT SQL>
oppure rileggermi il documento per decodificare il codice cliente, ma qui potrebbe essere una mia carenza di SQL.
A proposito se devi decodificare il codice cliente della testata di un ordine con l'anagrafico clienti,
supponendo che non sempre esista il codice in testata ordine come fai ? la semplice 
"select * from testataOrdine, anagraficaCliente where clienteTestata=clienteAnagrafica" non funziona, c'e' solo la soluzione outer join ?. 
</OT SQL>


 Se uno poi vuol emulare il php lo puo' fare ^__^
Io creato 3 tags dei quali:
-il primo prende una connessione dal pool di connessioni e la espone alla
pagina
-il secondo prende la connessione dal pageContext, legge la query che e'
nel corpo ed espone alla pagina un ResultSet
-il terzo itera sul resultset ed espone i dati
I VANTAGGI sono nella semplicita' con cui posso gestire i dati nelle
pagine JSP e nel fatto che utilizzo questi tags senza modifiche in tutte
 (o quasi) le pagine
Gli SVANTAGGI sono nelle prestazioni perche' i tags personalizzati
implementano il SingleThreadModel e non c'e' quindi scalabilita'
Se decidessi di utilizzare JavaBean per la memorizzazione dei dati sarei
costretto a creare un bean per ciascuna query??? 
Esiste sicuramente un modo migliore, ma qual'e'????
Ringrazio anticipatamente

implementano il SingleThreadModel e non c'e' quindi scalabilita'
come
sarebbe implementano il SingleThreadModel? da che cosa lo deduci? io non ho
visto niente che lo faccia supporre.
--------------------------------
Inviato via 
http://usenet.iol.it
 

...

Quando l'ho scoperto ci sono rimasto veramente male!! 
Comunque l'ho letto su un libro della McGrow-Hill che Servlet, JSP e
MySQL.
In questo libro si spiega che per creare una applicazione veloce
occorre alleggerire il piu' possibile i tags personalizzati facendo in
modo che essi semplicemente leggano i dati da un JavaBean e li
presentino. In poche parole si spiega che la gestione dei dati presi
dai database deve essere fatta attraverso classi apposite, esterne a
quelle dei tags.
Ciao

 quelle dei tags.
Su questo sono d'accordo ma che i tag implementino singlethread model,
mi sembra veramente strano: cioč vuoi dire che i metodi del tag sono
implicitamente synchronized? Ciň mi sembra *veramente* strano.
Il fatto che la logica di accesso al db la demandi a un Data Access
Object č piů un fatto di architettura che di problema di thread.
Secondo me dovresti verificare, magari ti accorgi di aver frainteso
quella frase del libro, o che sia stata tradotta male?

Comunque voglio verificare.

Ho dato uno sguardo in giro, e non ho trovato nessun riferimento a
proposito del threading model applicato alle tag libraries. Inoltre ho
guardato il codice generato da Jasper (jsp engine) riguardo a vare
tag-lib e non sembra affatto che applichi particolari policy
d'esecuzione rispetto a dei normali javabeans.
Non ho fatto prove run-time, ma mi sembra abbastanza certo che sia
cosě.
Saluti.
Luigi.

...

Io sono sicuro di non aver capito male perche' in quel libro c'e' un
capitolo intero dedicato alle performance di Jsp e Servlet in
relazione al multithreading. Comunque domani quando torno a casa
prendo il libro e posto le frasi piu' importanti. Che sia un errore di
traduzione non ci posso credere perche' se non sbaglio si parla
proprio di SingleThreadModel che non puo' essere tradotto. Anche a me
comunque questa faccenda suona MOLTO strana. Che senzo avrebbe dare
una possibilita' agli sviluppatori di separare logica e codice se
questo e' fatto a scapito delle performance?