Java Mit Applet in Datei auf Server schreiben

ueler

Cadet 2nd Year
Registriert
Dez. 2008
Beiträge
25
Hallo,
ich möchte ein Java-Applet machen, das Zahlen in eine .txt-Datei (datei.txt) auf einem Server schreibt. Ich habe schon nach Lösungen im Inet gesucht, bin jedoch nicht wirklich fündig geworden. Hier der Code, der leider nicht funktioniert:

URL urlw = new URL (getCodeBase(), "datei.txt");
java.net.URLConnection con = urlw.openConnection();

con.setDoOutput(true);
con.setDoInput(true);
con.setAllowUserInteraction(true);

OutputStream outstr=con.getOutputStream();


BufferedWriter out = new BufferedWriter(new OutputStreamWriter(outstr));


out.write(aktgrx+" "+aktgry);

out.newLine();
out.close();


Was ist daran falsch? Wie lautet die richtige Lösung?
mfg, ueler
 
Liegt vielleicht daran, dass das Applet nicht auf dem Server sondern auf dem Client ausgeführt wird - egal wo das Applet abgelegt ist.
 
wie 1668mib schon sagt, werden Applets auf dem Client ausgeführt und haben so keine Möglichkeit, auf das Dateisystem des Servers zuzugreifen.

Alternativ könnte man a) einen Webservice benutzen oder b) eine Datenbank
 
Hi, ersteinmal danke für die Antworten. Also aus einer Datei auf dem Server lesen kann man, nun eben leider das mit dem Schreiben in eine Datei habe ich nicht geschafft. Schade. Muss ich das mit dem Schreiben halt weg lassen...
Mfg ueler
 
Wozu genau musst du die Zahlen denn schreiben? Du könntest auf dem Server ein entsprechendes PHP-Skript hinterlegen, das die entsprechenden Textdateien erstellt. Das Java-Applet müsste dann nur einen entsprechenden HTTP-Request absetzen. Im PHP-Skript kann man auch für die nötige Sicherheit sorgen. Allerdings muss das wirklich sicherheitstechnisch durchdacht sein und auch möglicherweise eine Nutzerverwaltung integriert werden...
 
Die Zahlen stehen für eine "Karte". Das Hauptprogramm liest die Datei mit den Koordinaten der Gebäude aus und stellt die Karte dar. Das andere Programm ist der Editor, der die erstellte Karte in eine Datei schreibt. Wie geht das in Kombination mit php? Ich kenne mich zwar mit php aus, wie das aber kombiniert werden muss, da habe ich keine Ahnung.
 
Also so ganz grob würde das PHP-Skript so aussehen:
PHP:
$tmp=str_replace('/','',$_GET['filename']);   // paar Sachen rausfiltern damits etwas sicherer ist
$tmp=str_replace("\\",'', $tmp);
$tmp=str_replace('.','', $tmp);
$filename = './internal/'.$tmp.'.txt';    //Ordner internal muss existieren und schreibbar sein
file_put_contents($filename, $_GET['zahlen']);
Je nach Applikation müsste da natürlich was entsprechendes bzgl. Userverwaltung rein. Statt in Dateien könnte man das auch in ner Datenbank (MySQL) speichern.

In Java müsstest du halt ganz normal das Skript als URL aufrufen ala http://xy.de/script.php?filename=xy&zahlen=2,3,2. Das hier http://hc.apache.org/httpclient-3.x/ könnte die Sache in Java evtl. erleichtern (gibt auch paar Beispiele auf der Seite). Wenn du sehr viele Daten überträgst (URLs dürfen nur eine begrenzte Länge habe), kannst du auch POST anstatt GET verwenden. In der verlinkten Klasse ist das mit Java sehr einfach möglich, vgl. http://svn.apache.org/viewvc/httpco...ormLoginDemo.java?revision=604567&view=markup
 
Zuletzt bearbeitet:
Zurück
Oben