Gå til innhold

Hjelp til enkel Applet ( website- teller )


Anbefalte innlegg

Hei.

 

Jeg har akkurat skrevet meg en enkel, liten applet som skal fungere som en teller over hvor mange som har vært innom en webside.

 

Appleten leser en integer fra en .txt- fil, viser integeren i vinduet og skal så oppdatere .txt- filen slik at den øker med 1 hver gang programmet kjøres.

 

Problemet er at appleten fungerer helt fint i Eclipse, men når jeg kjører den i en webbrowser så vil ikke .txt- filen oppdateres. Dvs.; tallet forblir uendret.

 

Noen som kan hjelpe meg litt på vei?

 

Kode:

 

mport java.awt.*;
import javax.swing.*;
import java.io.*;

public class Counter extends JApplet {

private FileReader file;
private BufferedReader read;
private FileWriter filew;
private PrintWriter print;
private int count;



public void paint( Graphics g ){
 
 getNumber();
 super.paint( g );
 
 g.drawString("You are visitor number: " + count, 25, 25);
 modifyNumber();
}

public void getNumber() {
 
 try{
 	
 	file = new FileReader( "counter.txt" );
 	read = new BufferedReader( file );
 	
 }
 catch( IOException ioException) {
 	
 	ioException.printStackTrace();
 }
 
 
 try {
 	
 	count = Integer.parseInt( read.readLine() );
 	read.close();
 }
 catch( IOException ioException) {
 	
 	ioException.printStackTrace();
 }
}

public void modifyNumber() {
 
 count++;
 
 try {
 	
 	filew = new FileWriter( "counter.txt" );
 	print = new PrintWriter( filew );
 }
 catch( IOException ioException) {
 	
 	ioException.printStackTrace();
 }
 
 print.println( count );
 print.close();
}

}

Lenke til kommentar
Videoannonse
Annonse
Hei.

 

Jeg har akkurat skrevet meg en enkel, liten applet som skal fungere som en teller over hvor mange som har vært innom en webside.

 

Appleten leser en integer fra en .txt- fil, viser integeren i vinduet og skal så oppdatere .txt- filen slik at den øker med 1 hver gang programmet kjøres.

 

Problemet er at appleten fungerer helt fint i Eclipse, men når jeg kjører den i en webbrowser så vil ikke .txt- filen oppdateres. Dvs.; tallet forblir uendret.

 

Noen som kan hjelpe meg litt på vei?

 

Kode:

 

mport java.awt.*;
import javax.swing.*;
import java.io.*;

public class Counter extends JApplet {

private FileReader file;
private BufferedReader read;
private FileWriter filew;
private PrintWriter print;
private int count;



public void paint( Graphics g ){
 
 getNumber();
 super.paint( g );
 
 g.drawString("You are visitor number: " + count, 25, 25);
 modifyNumber();
}

public void getNumber() {
 
 try{
 	
 	file = new FileReader( "counter.txt" );
 	read = new BufferedReader( file );
 	
 }
 catch( IOException ioException) {
 	
 	ioException.printStackTrace();
 }
 
 
 try {
 	
 	count = Integer.parseInt( read.readLine() );
 	read.close();
 }
 catch( IOException ioException) {
 	
 	ioException.printStackTrace();
 }
}

public void modifyNumber() {
 
 count++;
 
 try {
 	
 	filew = new FileWriter( "counter.txt" );
 	print = new PrintWriter( filew );
 }
 catch( IOException ioException) {
 	
 	ioException.printStackTrace();
 }
 
 print.println( count );
 print.close();
}

}

Problemet er nok at filen du lagrer ikke ligger på serveren, men hos klienten (nettleseren). Appletten skal i utgangspunktet ikke ha mulighet til å opprette/endre filer i filsystemet til brukeren, så den lagres i et område som appletten har tilgang til (dvs. minne, dersom jeg husker rett). Så hver gang appletten kalles opprettes det en ny fil (counter.txt), som forsvinner når appletten slutter å kjøre.

 

For at dette skal fungere må du benytte deg av en type kobling mellom serveren appletten kjører på og klientens maskin. Dette gjøres som regel ved hjelp av et sertifikat, e.l.

 

En mer elegant løsning er å bruke deg av server-side Java. F.eks. JSP/Servlet teknologi.

Lenke til kommentar

Hvis jeg forstår det rett så vil altså appleten, når den kjører i browseren, prøve å få tilgang til filen hos clienten?

 

Den vil altså ikke "skjønne" at den skal lese fra/ skrive til en fil på serveren?

 

Takker for svar, får sette meg ned og kikke litt på Servlets.

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...