Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Applet che scrive in un file che risiede sul suo stesso server

    Salve a tutti,
    ho bisogno di un consulto per risolvere una questione spinosa di cui devo trovare assolutamente un soluzione.
    Le applet non possono scrivere e leggere file che risiedono nel disco fisso, ma possono farlo se il codice risiede nello stesso server che contiene anche il file da leggere/scrivere?
    Per quanto riguarda la lettura non ci sono dubbi: è possibile, perché l'ho implementata e funziona.
    Per quanto riguarda la scrittura invece su un file, non riesco in nessun modo a scrivere il file. Cosa devo fare?
    Vi mostro il codice scritto finora che non funziona:

    codice:
    URL url = new URL(getDocumentBase(),"score.txt");
    URLConnection connection = url.openConnection();
    connection.setDoOutput(true);
    
    OutputStream ous = connection.getOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream( ous );
    
    oos.writeObject("Something...");
    oos.close();
    Cosa c'è che non va?
    C'è da dire che avevo provato usando PrintWriter e mi dava errori di sicurezza.. in questo modo però non mi da nessun errore, semplicemente non mi scrive (ma me lo visualizza subito appena scritto, sulla applet, non sul file).
    Cosa mi sapete dire in merito?
    Vi prego ho assolutamente bisogno di capire come mi devo muovere, sono bloccata da due giorni!
    Silvia C.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Applet che scrive in un file che risiede sul suo stesso server

    Originariamente inviato da sparkling
    Cosa c'è che non va?
    È il concetto di fondo che non è assolutamente corretto. Tu stai lavorando con un URL e se la applet è stata scaricata da internet, allora quel URL userà sicuramente il protocollo HTTP, cioè sarà una cosa del tipo http://blabla/....

    Il protocollo HTTP non è un file-system .... è un protocollo client-server in cui il client fa una "request" e il server invia una "response". Nella request inviata al server è anche presente quello che si chiama "metodo". I due metodi più usati sono GET e POST. GET serve per prelevare una risorsa da un server web mentre POST serve per inviare dei dati al server. Questi dati sono inviati come "corpo" della request.

    Tornando alla tua questione che hai posto, il fatto che tu possa ottenere un URLConnection, ottenere un OutputStream e scriverci sopra, non vuol dire che stai scrivendo un file sul server!!!

    Vuol dire che stai facendo un POST e inviando dei dati nel corpo della request .... e cosa se ne farà il server dei tuoi dati .... dipende. Nel senso che per poter gestire il POST è necessario generalmente che l'URL faccia riferimento ad una pagina in un qualche linguaggio server-side: PHP, ASP, JSP ma anche Perl, Python o comunque un qualche linguaggio/script che possa eseguito sul server.
    Lo script potrà quindi ricevere i dati, elaborarli e farne ciò che vuole, compreso es. memorizzarli su un file, su un db, reinviarli al client ecc....

    Come hai fatto tu non potrà mai funzionare .....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: Applet che scrive in un file che risiede sul suo stesso server

    Originariamente inviato da andbin
    È il concetto di fondo che non è assolutamente corretto. Tu stai lavorando con un URL e se la applet è stata scaricata da internet, allora quel URL userà sicuramente il protocollo HTTP, cioè sarà una cosa del tipo http://blabla/....

    Il protocollo HTTP non è un file-system .... è un protocollo client-server in cui il client fa una "request" e il server invia una "response". Nella request inviata al server è anche presente quello che si chiama "metodo". I due metodi più usati sono GET e POST. GET serve per prelevare una risorsa da un server web mentre POST serve per inviare dei dati al server. Questi dati sono inviati come "corpo" della request.

    Tornando alla tua questione che hai posto, il fatto che tu possa ottenere un URLConnection, ottenere un OutputStream e scriverci sopra, non vuol dire che stai scrivendo un file sul server!!!

    Vuol dire che stai facendo un POST e inviando dei dati nel corpo della request .... e cosa se ne farà il server dei tuoi dati .... dipende. Nel senso che per poter gestire il POST è necessario generalmente che l'URL faccia riferimento ad una pagina in un qualche linguaggio server-side: PHP, ASP, JSP ma anche Perl, Python o comunque un qualche linguaggio/script che possa eseguito sul server.
    Lo script potrà quindi ricevere i dati, elaborarli e farne ciò che vuole, compreso es. memorizzarli su un file, su un db, reinviarli al client ecc....

    Come hai fatto tu non potrà mai funzionare .....
    Ok ti ringrazio... Immaginavo una cosa simile purtroppo... non ho mai fatto niente in PHP o JSP, puoi mandarmi qualche link di esempio? Non dovrebbe essere una cosa difficile ma ho davvero bisogno di imparare in pochissimo tempo...
    Intanto darò un'occhiata alle guide qui su html.it ... Se puoi darmi qualche dritta, sono ben accetti i consigli!!
    Tutto quello che ho da fare è memorizzare in un file un punteggio e un nome in una riga.. tutto qui. E poi ovviamente tale riga deve essere visualizzabile a video, quindi deve poter essere ripresa e letto.

    Ecco, la cosa che non mi è chiara fino in fondo è perchè riesco comunque a leggere da quel file. Non dovrebbe avere le stesse limitazioni?
    Silvia C.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Applet che scrive in un file che risiede sul suo stesso server

    Originariamente inviato da sparkling
    non ho mai fatto niente in PHP o JSP, puoi mandarmi qualche link di esempio?
    Un linguaggio server-side lo devi comunque scegliere .... PHP è uno di quelli più comuni. Se ti interessa gestire l'upload con PHP, allora leggi Handling file uploads sul manuale online del PHP. Ma se non conosci PHP o altro ... non sarà certamente facile.

    Originariamente inviato da sparkling
    perchè riesco comunque a leggere da quel file. Non dovrebbe avere le stesse limitazioni?
    Se fai un GET non ci sono generalmente problemi (a meno che la risorsa non sia in una area protetta da password ma non è il tuo caso).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Ok, quindi la lettura si e la scrittura no..
    In che confusione mi sono messa!!! Speriamo di risolvere..
    Senti un'altra cosa... secondo te utilizzare JDOM (ho letto qualcosa in qua e là) e invece che in file di testo memorizzare tutto in file .xml e gestirli con JDOM è possibile? Anche qui ci sono gli stessi problemi sulla scrittura secondo te? (vado a dare un'occhiata alle api...)
    Silvia C.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da sparkling
    Senti un'altra cosa... secondo te utilizzare JDOM (ho letto qualcosa in qua e là) e invece che in file di testo memorizzare tutto in file .xml e gestirli con JDOM è possibile?
    Se vuoi strutturare i tuoi dati con XML, allora ok.

    Originariamente inviato da sparkling
    Anche qui ci sono gli stessi problemi sulla scrittura secondo te?
    Cambiare tipo di file non ti risolve però il problema. Su HTTP puoi prelevare una risorsa dal server con un GET ma se vuoi inviare dei dati devi fare un POST ... un "upload".
    Se usi XML, per leggere il file puoi passare l'URL direttamente al parser, ci pensa lui a connettersi, scaricare i dati e parsarli.
    Per l'upload dovrai dire alla classe che gestisce l'output (se usi JDOM è la classe XMLOutputter) di scrivere il documento sul OutputStream che ti ha fornito la URLConnection. Ma il discorso non cambia ... lato server deve gestire quel'upload.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Originariamente inviato da andbin
    Se vuoi strutturare i tuoi dati con XML, allora ok.

    Cambiare tipo di file non ti risolve però il problema. Su HTTP puoi prelevare una risorsa dal server con un GET ma se vuoi inviare dei dati devi fare un POST ... un "upload".
    Se usi XML, per leggere il file puoi passare l'URL direttamente al parser, ci pensa lui a connettersi, scaricare i dati e parsarli.
    Per l'upload dovrai dire alla classe che gestisce l'output (se usi JDOM è la classe XMLOutputter) di scrivere il documento sul OutputStream che ti ha fornito la URLConnection. Ma il discorso non cambia ... lato server deve gestire quel'upload.

    Sarà che ora come ora sono in preda al panico e quindi non riesco a capire niente...
    ma quindi comunque avrò bisogno di un file jsp o php o roba simile per gestire tali file?
    Scusami... e grazie ancora se avrai la pazienza di ri-rispondermi!
    Silvia C.

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da sparkling
    ma quindi comunque avrò bisogno di un file jsp o php o roba simile per gestire tali file?
    Sì, devi usare un qualche linguaggio che possa essere eseguito sul server. E quali linguaggi puoi utilizzare, dipende dal servizio di hosting che intendi usare. Se fosse ad esempio Altervista, allora puoi usare solo PHP. Per altri ... verifica cosa è supportato.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.