Gå til innhold

Trenger litt hjelp til applet-rettighetsproblem


Anbefalte innlegg

Hei

Jeg holder på å lage en Applet som skal lese fra en fil på server. (Filen ligger i samme mappen som mine classfiler). Men når jeg skal lese fra filen jeg har liggende der får jeg et rettighetsproblem: access denied (java.io.FilePermission liste.txt read).

Jeg vet at Applets har restriksjoner som blandt annet at en applet ikke kan lese eller skrive filer på brukers filsystem.

 

Mitt spørsmål er om det er en måte å lese fra en fil eller en database fra en applet (Alt skal ligge på en webserver).

 

Her er min kode for å lese fra filen min:

try {
 FileReader filLeser = new FileReader("liste.txt");
 BufferedReader leser = new BufferedReader(filLeser);

 String verdi = leser.readLine(); //Leser første linjen (Highscore, dette er bare overskriften i filen)

 verdi = leser.readLine();
 boolean is_navn = true;
 int teller = 0;

 while(verdi!=null) {
    if(is_navn){
       listen[teller] = new ListeElement(verdi);
    }
    else{
       listen[teller++].setPoeng(verdi);
    }
    is_navn = !is_navn;
    verdi = leser.readLine();
 }
}
catch (Exception e){ testlabel.setText(e.getMessage()); }

Endret av fropal
Lenke til kommentar
Videoannonse
Annonse

Når du skriver new FileReader("liste.txt") refererer du til en lokal fil. Dermed noe programmet som applet ikke har tilgang til (selv om appletten kjører på samme maskin som webserveren).

 

Dersom du kjører en webserver på maskinen din, som du laster siden fra, kan du jo legge filen på denne serveren sammen med appletten og prøve noe som new FileReader("http://127.0.0.1/liste.txt").

 

Eventuelt se på URI, og bruk new FileReader(new URI("path til webserver og fil")).

 

CPL

Lenke til kommentar
Dersom du kjører en webserver på maskinen din, som du laster siden fra, kan du jo legge filen på denne serveren sammen med appletten og prøve noe som new FileReader("http://127.0.0.1/liste.txt").

Viktig å få med seg at av sikkerhetsmessige grunner vi ikke en applet få tilgang til ressurser utenfor 'sandkassen' sin som inkluderer serveren den ligger på og et lite virituelt miljø inne i nettleseren, skal du åpne en fil på serveren må du bruke url'en til serveren ordrett slik den er skrevet i nettleseren (dvs http://127.0.0.1/fil hjelper ikke hvis nettleseren har åpnet http://localhost).

 

Bruk getCodeBase() for å finne nøyaktig path.

 

Litt usikker på at man får åpnet filer i det heletatt, men det er ihvertfall slik man åpner sockets til serveren.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...