Newsgroup: it.comp.java
Titolo: applet kiama servlet help pls

Scusate chiaritemi questo punto uan volta per tutte:
una applet puo' scrivere un file sullo stesso  server dal kuale viene
scaricata? il concetto di firma quando si applica? o deve farlo
tramite qualcosa tipo una servlet?
grazie mille 
ciaoo :))))

 ha scritto nel messaggio
news:3bf86321...@news.libero.it...


 wrote in message
news:3bf86321...@news.libero.it...




Dovresti rinfrescarti un po' con la documentazione ufficiale! 
Comunque, l'applet, se non firmato, puo' eseguire una _connessione_ via socket solo con il
server di provenienza, il fatto che tu poi possa _scrivere_ sulla macchina cui ti connetti
dipende dal protocollo se usi: FTP ad esempio ti permette di scrivere, HTTP di norma
(cioe' nel 99% dei casi nel web attuale, a meno che tu non configuri altrimenti il server)
no. 
Quello che ti consiglio e' di passare decisamente all'uso di servlet come "intermediari"
nel sistema. Per quanto riguarda la comunicazione applet/servlet ho di recente aggiunto un
tutorial sul mio sito all'uso di GMI, un protocollo di comunicazione fatto proprio per
quello. Lo trovi su 
http://members.xoom.it/bbruno/gmi_tutorial.html
Disponibile sul NG per altre info.
Ciao,
    Bruno.
|
| Bruno Bossola
| A Java Software Engineer :-)
| 
http://bbruno.fasturl.it
|
| 
http://members.xoom.it/bbruno
| 
http://digilander.iol.it/bbossola
|

Ok grazie mille.
Mi sembra di aver capito che passare per una servlet è una delle
migliori soluzioni. Correggetmi se sbaglio: l'applet apre un socket
verso la servlet che sta ascoltando e fornisce dati mediante uno dei
protocolli già noti ( http, ftp ) o magari si deve implementare un
protocollo specifico? 
Spero che si possa fare usando protocolli esistenti. Magari se ne
consigliate uno facilmente utilizzabile. 
Quindi la serlvet poi puo' chiaramente scrivere sul server in un  file
le info che rieceve ?  mmmmm comincio a capire ....credo.... 
grazie mille a tutti 
ciaooo :)))))


Si, esatto.


un ultima cosa : per testare le servlet kosa è meglio utilizzare? 
jsdk? tomcat? apache? 
io preferirei il meno laborioso per questa fase di testing 
magari dopo ne userò uno efficiente 
grazie ragazzi :))) 
ciaoo 

Se per "testare" intendi dire "provare" allora scegli tomcat: anche come servlet engine di
deployment e' il preferito e puo' funzionare anche da web server, anche se normalmente, in
produzione, lo si accoppia ad un web server per la gestione dei contenuti statici (di
solito apache).
Ciao,
    Bruno.
P.S.
Se invece per "testare" intendi dire "eseguire dei test" ti consiglio JUnit


|


Allora, eccomi giunto qua:
Per provare le servlet ho fatto come si diceva in qualche post
addietro ( di frolix-8 ). 
Quindi ho scaricato i seguenti 
apache 1.3.22
tomcat 3.3 
e il file mod_jk.dll 
Tutto su win98
Ho installato apache 
poi tomcat
Ho provato se funzionavanmo ed entrambi mi hanno mostrato nel browser
la famosa pagina di "tutto ok ........ora vengono i guai" :)))) 
QUindi fin qui va bene. Ho preso il file dll di cui sopra e l'ho messo
in \modules di apache. 
Poi mi si dice di aggiungere alla fine del file httpd.conf sito in
apache\conf\ la seguente riga
include c:/jt/tomcat/conf/jk/mod_jk.conf-auto 
Ok l'ho fatto. Faccio partire tomcat ...ok....poi apache e STOP. Mi
dice che non trova il file suddetto.
Ora a quanto ho capito io quel file viene generato da tomcat ad ogni
avvio. Pero' o non l'ha fatto o ho sbagliato il path del comando
include. Sono andat oquindi  leggermi l'howto "working with mod_jk"
che è stato installato con  tomcat e nel quale ci sta una sezione che
serve per configurare apache. Ora li si dicono delle cose che non ho
capito
1) If you've previously configured Apache to use mod_jserv, remove any
ApJServMount directives from your httpd.conf. If you're including
tomcat-apache.conf or tomcat.conf, you'll want to remove them as well
- they are specific to mod_jserv.  The mod_jserv configuration
directives are not compatible with mod_jk!
Ok.....come faccio a sapere se il mio apache usava quel modulo? i ocon
una ricerca nel file httpd.conf non ho trovato nulla che facesse
riferimento a tale modulo...quindi ho lasciato cosi' il file.
Poi subito dopo ci sta un passo su come fare creare a tomcat il file
che andrà a cercare apache: si dice di far partire tomcat con
l'opzione jkconf. Domanda stupida coem si fa? :)) 
Spero di non appesantire il post ma metto questo passo 
In most simple cases Tomcat can generate the needed Apache
configuration. The default installation of Tomcat comes configured to
generate a configuration file on demand for Apache to use mod_jk. Most
of the time you don't need to do anything but include this file
(appending "Include TOMCAT_HOME/conf/auto/mod_jk.conf") in your
httpd.conf, as shown in the previous section (Configuring Apache). 
To have Tomcat generate the configuration file, start Tomcat with the
"jkconf" option. Tomcat will initialize, write the configuration file,
and then exit. This may be done while an instance of Tomcat is
running.
qua si dice cio' che ribadivo prima: usare l'opzione jkconf per farl0o
creare mentre un altra istanza di tomcat sta in running.
The generation of the mod_jk configuration file is controlled by the
ApacheConfig module. The default installation of Tomcat 3.3 comes with
the ApacheConfig directive already present in the
TOMCAT_HOME/conf/server.xml.
..........................
.................
If you have special needs, for example mounting URL prefixes that are
not the default, you can use this file as a base for your customized
configuration and save the results in another file. If you manage the
Apache configuration yourself you'll need to update it whenever you
add a new context. 
Note that you must restart tomcat and apache after adding a new
context; Apache doesn't support configuration changes without a
restart. Also the file TOMCAT_HOME/conf/auto/mod_jk.conf is generated
when tomcat starts, so you'll need to start Tomcat before Apache.
Tomcat will overwrite TOMCAT_HOME/conf/auto/mod_jk.conf each startup
so customized configuration should be kept elsewhere.  For example,
copy TOMCAT_HOME/conf/auto/mod_jk.conf to
TOMCAT_HOME/conf/jk/mod_jk.conf before making changes.  You'll need to
start Tomcat with the "jkconf" option once to generate this file with
your configuration for the first time. 
 
Poi qua mi perdo completamente ....... entro in confusione su questo
cavolo di file...sul pericolo di non sovrascriverlo etc etc ....
Per cortesia sapete illuminarmni in qualche modo? 


In pratica quel file e' quello che usa apache per decidere se passare la richiesta a
tomcat o gestirla lui. Se fai delle modifiche alla configurazione di tomcat, ad esempio
aggiungi un nuovo contesto sotto %TOMCAT_ROOT%/webapps, allora devi fare rigenerare quel
file, e devi anche fare ripartire apache in modo che digerisca la nuova configurazione.
Inoltre se devi configurare in modo particolare tomcat non scrivere direttamente dentro a
quel file ma fanne una copia e usa quella. Occhio pero' che se modifichi la configurazione
di tomcat (anche se semplicemente aggiungi un nuovo contesto) dovrai riportare le
modifiche in quel file che ti sei copiato, oppure ripartendo dall'"auto" dovrai riportare
le modifiche.
Boh, facci sapere!
Ciao,
    Bruno.


Ok. Grazie per le vs risposte.
In effetti per ora apache diciamo che è un optional visto ke devo solo
provare le servlet e il loro funzionamento. 
Mi sono pero' imbattuto in un kualkosa che all'inizio non capivo e ke
invece ora credo di aver agganciato.
Quando si apre la pagina di prova di tomcat e si va alla pagian dove
ci sta l'elenco delle servlet di esempio ci stanno i link per farle
avviare e vicino quelle con i sorgenti.
Ora siccome ho avuto problemi nell'inserire una mia applet mi son
messo a spulciare il codice di una di quelle di prova per capire se
sbagliavo nelal scrittura delal servlet. E credo che sia cosi (
correggetemi se sbaglio) : nell'esempio Request Parameters se mi
posiziono sul link ke avvia la servlet vedo in fondo che porta a
http://localhost:8080/examples/servlet/RequestParamExample
 e ciò ke
mostra è la pagina con il form per inserire noime e cognome. Ma quando
clicco su quel link di cui sopra.......è vero che sto kiamando la
servlet e non una poagine html? 
Io credevo che fosse un link ad una apgine html "fisika" e non
generata dalla servlet. E me ne sono accorto perkè nel sorgente della
servlet (il *.class) ci sta proprio il codice html di quella pagina e
ovvio anke di kuella ke viene kuando si premde il bottone del form. 
Mi sembra che quindi kuel link di avvio non è altro che una kiamata
GET che fa partire la servlet. Ho interpretato male? ditemi se si.
Un'altra cosa che pero' mi lascia un po confuso sono l'uso dei metodi
doGet e doPost. Mi sembra di aver kapito dalle dokumentazioni che i
metodi sono quasi uguali: solo  che con POST posso "gestire molte +
stringhe e  info visto ke vengono messe nel body delal rikiesta
.....mentre nel GET il body è vuoto. Mi sbaglio? o meglio mi
indikereste le altre differenze e kuando è meglio usare un metodo
piuttosto ke un altro? Mi è sorta questa confusione proprio osservando
il class della servlet di cui parlavo prima : infatti in esso viene
ridefinito un metodo doGet che fa quello ke deve fare ....poi dopo
viene definito il doPost ma in questo modo
public void doPost(HttpServletRequest request,
                      HttpServletResponse response)
        throws IOException, ServletException
    {
        doGet(request, response);
    }
Come mai si va a rikiamare il metodo doGet? Io me la son spiegata
pensando ke sia ke sia una GET ke una POST la servlet le tratta allo
stesso modo.......vero? Mah ....speriamo di aver capito bene questi
concetti ....io sono fiducioso....non smentitemi! :)))))))
un saluto a tutti e grazie :))))))
ciaooooo 


Tutto okay, vai avanti cosi!
Ciao,
    Bruno.
P.S.
Perche' usi quella k al posto della ch? Non risparmi molto, non sei granche' piu' figo ed
in piu' i tuoi messaggi si leggono peggio :-)


|


in piu' i tuoi messaggi si leggono peggio :-)
ehheheh non è per essere + fighi....anzi...solamente "deformazione
professionale"  dovuta a irc :)))) 
ciao e grazie di tutto :))) 

Di nuovo qua. Mi servirebbe capire una sola cosa ora: 
ho fatto la mia servlet , mi salva il file di testo e tutto funziona.
Ora questo file che verrà elaborato da codice C++ che in uscita
produrra un altro .txt kontenente una colonna di valori che
rappresentano le ordinate di un grafico. Ora mappare l'insieme
ascissa-ordinata in modo corretto del grafico che verrà in output
credo sia semplice ( credo!).   Avevo intenzione di mandare il grafico
ad una applet i nquanto mi è stato detto che fornisce il supporto per
permettere all'utente di "navigare" nel grafico...che ne so zoom e
cose del genere.
I passi da fare quindi sono : 
aspetto che il file C++ finisca l'elaboirazione-------->prendo il file
di output e lo mando come input al codice che sviluppera
l'applet------->visualizzo il grafico nell'applet
Ora non so se una tale impostazione dei compiti sia adatta.
Io avrei pensato ad una soluzione raffinata: cioè una volta premuto il
tasto del form parte una specie di progress status che avanza mentre
la servlet scrive il file e il c++ elabora. Poi uyna volta terminato
l'avanzamento si puo' premere un pulsante per la visualizzazioen
dell'applet e del relativo grafico.
é troppo komplikato? 
Cmq .... a parte kuesta implementazioen specifica kuello che mi kiedo
è in che modo la servlet dice al C++ "vai il file è pronto puoi
iniziare a elaborare" e in che modo dico all'applet di partire. Io
sento puzza di multithread.....e francamente credo sia la strada da
percorrere. Strada che pero' mi è abbastanza ignota. Non so ..se avete
idee a riguardo anche spunti da cui partire sparate pure. magari anche
risorse in rete ....progetti simili già esistenti magari con i
sorgenti class free cosi' me li spulcio per bene.
Grazie infinite 
ciaoooo :))))))  

 
Beh, a me sembra una pratica invereconda. :-)
tityrus

Mah, io semplicemente darei alla servlet la responsabilita' di controllare il processo,
quindi, seguendo quello che hai scritto tu:
1. la servlet riceve la richiesta da parte del browser
2. crea il file di input di testo
3. lancia il processo C++ (leggi le FAQ)
4. crea la pagina HTML di ritorno contenente sia il riferiment all'applet sia i dati
elaborati dopo averli letti dal file di output
5. l'applet arrivato sul browser parte e, eventualmente dopo la pressione di un bottone,
visualizza il grafico 
In alternativa i punti 4-5 possono essere strutturati anche in questo modo:
4. crea la pagina HTML di ritorno contenente il riferiment all'applet 
5. l'applet arrivato sul browser parte e apre una connessione con il sito web di
provenienza dal quale scarica mediante una connessine HTTP il file di dati elaborati
6. l'applet, eventualmente dopo la pressione di un bottone, visualizza il grafico
Per quanto riguarda la progress, si puo' fare, ma tu prima fai funzionare questo che poi
al limite se ne parla :-)
Ciao,
    Bruno.
P.S.
E basta con 'ste k!!! :-D


|


ghhghgghhg  .... grazie millee :)))))
