|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6270
|
(Java) Domande varie su JSP e Servlet
Salve, avrei alcune domande su tali argomenti.
1) In molte guide JSP fanno un esempio in cui c'è una pagina JSp che prende in ingresso dati da un form. Tale pagina poi richiama una Servlet a cui passa i dati immessi. Ma io non capisco, una pagina JSP non diventa automanticamente una Servlet? Che bisogno c'è che la pagina JSP richiami un'altra Servlet? 2) Ho visto che in alcuni casi Vi è una implementazione di thread all'interno delle servlet. Ora, io so che la gestione della concorrenza tra servlet, a parte alcuni piccoli accorgimenti è a carico del Web Container, ad esempio Tomcat, e che ogni connessione a tale servlet è in pratica una specie di thread a se. Quindi, perchè implementare un ulteriore thread all'interno della Servlet? Grazie. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Per la uno, è certamente corretto dire che non c'è un'esigenza meccanica di divisione dei compiti. E' possibile tuttavia che l'autore abbia fatto una scelta strutturale. Non è insolito che un programma sia costruito come un insieme di parti ognuna responsabile di uno specifico gruppo di azioni. Probabilmente l'autore di quell'esempio ha inteso delegare ad un componente l'acquisizione dei dati ed ad un altro componente la sua manipolazione. Per farlo ha sfruttato la modularità che esiste nei linguaggi di programmazione ormai da tempo immemore.
Per la due è un problema di garanzie minime. Il server ha la responsabilità di gestire la fornitura del servizio rappresentato dalla servlet. Può usare un Thread solo per tutti, può usare un Thread per ogni connessione, può usare un pool di Thread e distribuire il carico tra di essi. Dal punto di vista della distribuzione del carico di lavoro tutto quello che il programmatore sa è che... non sa. La domanda che si fa è: posso delegare al Thread che fornisce il servizio un compito che lo terrà impegnato per un bel po? Sapendo che ogni connessione è gestita da un Thread ad hoc la risposta sarebbe sì. Ma poichè non si può contare su questo comportamento la soluzione da preferire è "garantista": non sovraccarico un Thread di cui non conosco le responsabilità ma ne creo e controllo uno ad hoc. Nascono problemi anche in questo caso ma sono problemi che derivano interamente da presupposti noti e controllabili dal programmatore della servlet.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 365
|
Quote:
|
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Nov 2002
Messaggi: 6270
|
Quote:
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Se intendo correttamente il senso della domanda sì, è possibile. La precisazione è dovuta al fatto che in Java non c'è una relazione master-slave tra Thread. C'è invece una relazione parent-child tra ThreadGroup (ogni Thread appartiene ad un ThreadGroup). Occorre inoltre tenere conto del fatto che avere un riferimento ad un Thread Java non significa poterlo controllare: per farlo occorre che il Thread appartenga ad una più ampia struttura di controllo. Comunque è un sì: Java non cessa di essere un linguaggio concorrente quando vede due 'E' di fila
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:20.




















