Newsgroup: it.comp.java
Titolo: URLConnection!

Ho creato una connessione con la classe URLconnection ad un file di testo
nello spazio web della mia home page (tiscali. libero)...
con il metodo getOutputStream() di   URLConnection e la classe
OutputStreamWriter ho provato a scrivere qualcosa su questo file ...
java non ha dato messaggi di errore ma il file non ha subito le modifiche
aspettate ...   avete idea del possibile motivo????
(in fase di lettura utilizzo la classe InputStreamReader e non ha dato
problemi!!!)

 aspettate ...   avete idea del possibile motivo????
Ti ricordo che stai utilizzando il protocollo http:
E' naturale che non puoi modificare le risorse di un web server:
guai se non fosse così! Chiunque, anche io ;-), potrei modificare
a piacimento le tue pagine o i tuoi file presenti nel tuo spazio web.
Per modificarle si può procedere:
1. Andando con un dischetto nel computer che ospita le tue pagine
    e copiando i nuovi file: ma credo non sia proprio il caso!
2. Usando un client FTP connettendosi con *opportune credenziali*:
    penso che è quello che fai tu quando modifichi le risorse;
3. ...tanti altri modi, ma certamente non come un banalissimo client http.
Ora veniamo al perchè l'istanza di URLConnection fornisce uno OutputStream:
Il protoc. http è di tipo domanda/risposta: il client richiede una risorsa
e il server gliela invia. L'OutputStream serve per compilare la richiesta.
L'InputStream serve per leggere il documento spedito dal server. Ecco tutto.
Diversa è la situazione quando al server web viene 'agganciato' un programma
che elabora le richieste e può scrivere in un file, database, etc. Ma questo
è il caso
ad esempio di un application server che si 'nasconde' dietro un webserver. O
nel
caso di IIS di MSozz! (OT: Che ne pensate di asp .net?)
Nel caso dello spazio web fornito da Tiscali, credo che ti mettano a
disposizione
solo il web server, per cui non puoi fare altrimenti se non leggere solo
quello che avevi
installato (via FTP) nel tuo spazio web.
Chissà se ti ho incasinato di più le idee?!?!?
Ciao,
GianpieroP

 aspettate ...   avete idea del possibile motivo????
Ma... scusa... ti pare che sia possibile modificare una pagina web senza 
girare per i vari server FTP del server, ecc? A me no, ergo mi pare 
normale che non riesci a _scriverci_ sopra con un semplice programmino. 
Che poi non ti dia errore, sara' dovuto alla semantica della classe, che 
cmq non ho mai usato, e quindi non so dare piu' informazioni.
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

 ha scritto nel
messaggio news:weMSb.16865$VS6....@tornado.fastwebnet.it...


 ha scritto nel messaggio
news:bvg3tn$obn$1...@le1.cs.unibo.it...

Correggimi se sbaglio ...
Gli applet non possono collegarsi al file system della macchina che li
esegue (Browser)...
Questa limitazione non vale per la macchina da cui proviene l'applet ...
quindi "dovrebbe" essere possibile creare uno stream per modificare un file
presente nel server da cui PROVIENE l'applet tremite l'applet stessa ed e'
per questo che non ottengo errori (ne in compilazione ne runtime) ...
poi e' ovvio che l'unico modo che ho per modificare o accedere al mio server
SOLO con un client FTP ...
grazie cmq per la risposta

 SOLO con un client FTP ...
Ok, mettila cosi': puoi accedere solo al (sottoalbero, se non erro, del) 
filesystem a cui la applet appartiene, e solo in lettura :).
Questo, principalmente, perche' l'http non ha metodi per la scrittura (o 
se li ha, non sono praticamente mai implementati... di webdav poi non so 
nulla!), ed http e' l'unico modo con cui la tua macchina puo' accedere 
al server.


 per questo che non ottengo errori (ne in compilazione ne runtime) ...
L'errore non è generato dalla jre che esegue l'applet: tu, per lei, non fai nessuna operazione
illecita.
Il punto è che tu credi che stai scrivendo sul file, ma in realtà stai compilando ancora
una richiesta al webserver. Poi magari il Web Server (WS) ti risponde: "Ma che cavolo mi
stai dicendo?". Prova infatti a leggere la risposta che il WS ti sta inoltrando (subito il tuo flush()
o write() a seconda della classe di output) tramite l'InputStream. Tutte queste comunicazioni
per la JRE sono lecite. Il significato delle comunicazioni tra te e il WS sono interpretabili da te,
non dalla JRE.
Prova infatti a aprire una comunicazione sulla porta 80 del WS tramite telnet, scrivi qualcosa
e vedi che ti risponde il WS (qualcosa del tipo "Ma che m?ngh?a mi stai dicendo?").
Prova con il comando (a linea di comando)
telnet www.pippobaudoècapellone.invalid 80
(sostituisci l'indirizzo invalido con quello del tuo WS)
A connessione avvenuta scrivi "Ciao pippo!" + INVIO.
Anche se un errore c'è, è un errore che l'applicazione sottostante non vede (il telnet, in questo esempio;
l'URLConnection nel tuo esempio). cfr. modello ISO-OSI.
Scusa se insisto, ma è solo per chiarirti le idee, spero.
GianpieroP

 ha scritto nel
messaggio news:3IOSb.17252$VS6....@tornado.fastwebnet.it...

Grazie ancora
era la risposta che mi aspettavo!!!