Newsgroup: it.comp.java
Titolo: JSP - Bean - session

salve,
sto provando a relaizzare un bean che realizzi la connessione a un DB
(e per conto suo funziona)  e un secondo bean che utilizza la
connessione effettuata del precedente.
se i due bean sono istanziati nella stessa pagina tutto č ok....e ci
mancherebbe altro.
il problema si presenta quando cerco di fare altrettanto da una
seconda pagina a cui accedo con un tasto di tipo SUBMIT (HTML)
semplice semplice....
qui il bean che effettua la connessione sparisce...
eppure l'ho dichiarato di tipo session...
ho inserito: <% page session = "true" %>
eppure l'oggetto non viene visto....
come č possibile fare vedere un bean a piů pagine tra loro collegate,
senza instanziarlo ogni volta?
grazie a tutti

 wrote in message
news:3c71460...@news.tin.it...

Io ho fatto cosě:
Pagina A
<jsp:useBean id="prova" scope="session" class="Prova"/>
Pagina B
<jsp:useBean id="prova" scope="session" class="Prova"/>
La pagina B e "chiamata" dalla pagina A. Il bean č visibile in tutte e
due le pagina.
Nota: con Tomcat 3.3 ho perň visto che facendo cosě a volte non
funziona. Non sono riuscito a capire dove ho sbagliato...
Ciao,
Mauro
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
E' il bean che deve avere visibilità sessione:
<jsp:useBean id="myBean" scope="session" class="mypkg.MyBean" />
ciao
tityrus

 due le pagina.
si cosě č ovvio che funzioni....perň istanzi due volte los tesso
bean...e questo č quello ceh volevo evitare io...la connessione al db
la devo fare una volta sola e deve rimanere aperta....
sto provando con l'applicazione del singleton pattern riveduta e
corretta per i bean (costruttore non privato)
dovrebbe funzionare anche se non mi piace poi molto come
soluzione...il bean andrebbe cmq istanziato...troppo codice per i miei
gusti :-)

 <jsp:useBean id="myBean" scope="session" class="mypkg.MyBean" />
 inghippo risolto....
il Singleton era superfluo...però funzionava egregiamente
la soluzione è questa:
pageA.jsp
<jsp:useBean   class="webBean.connessione.ConnessioneDB"  id="c"  scope="session" >
pageB.jsp
<jsp:useBean   class="webBean.connessione.ConnessioneDB"  id="c"  scope="page" >
il secondo bean deve avere lo scope "page" altrimenti 'copre' il precedente
e tutto funziona con una sola istanza...
eppure non ci voleva molto no?

 gusti :-)
Guarda che non istanzi un nuovo oggetto, ma utilizzi quello istanziato
nella pagina precedente. Altrimenti che scopo avrebbe dichiarare scope
"session"?
Quindi da ogni jsp della sessione, vedi lo stesso oggetto (a patto che
l'id sia uguale). Puoi quindi mantenere tutti i dati che ti servono al
suo interno ed utilizzarli da tutte le pagine che condividono la
sessione.
tityrus

sessione.
ma il tag useBean non richiama il costruttore?...
cmq ora quella cosa l'ho risolta, grazie
ho un'altro quesito posso approfittarne?....
attendendo la risposta io faccio la domanda :-)
ho visto che una servlet può settare varie variabili in un bean...e
questo dichiarato request può essere utilizzato d auna jsp.....
ok...lo userò molto
non ho trovato riferimenti al fatto di poter utilizzare un bean
istanziato ed inizializzato nella JSP e richiamato ed utilizzato nella
servlet...si può fare? mi sarebbe molto utile....avrei risolto tutti i
miei problemi
grazie tante

 wrote in message
news:3c729e18...@news.tin.it...


> ma il tag useBean non richiama il costruttore?...
Scusa non ho molto tempo, per cui verifica quello che ti dico:
useBean richiama il costruttore di default; in ogni caso lo richiama
quando serve, ovvero -all'interno della sessione- la prima volta che
incontra un bean con quell'id, cioè quando non ne esiste ancora
un'istanza. Dopodiché, utilizza quell'istanza in tutte le jsp
all'interno della sessione (sempre chiaramente che abbia scope
session).
Indicazione rapidissima per il secondo quesito: guarda semplicemente
il file .java generato dal container JSP, per una qualsiasi JSP che
utilizzi un bean: quella è una servlet che usa un bean ;)
ciao
tityrus