also angenommen ich habe eine Java-Anwendung die lokal auf meinem Rechner läuft und ein Java Applet das auf meinem Webspace liegt.
Das Applet ist ein Bestellformular für die Anwendung die lokal auf dem Rechner läuft, also man kann dort verschiedene Versionen usw auswählen und das Ganze dann bestellen.
Jetzt möchte ich dieses Applet direkt in meinem Programm aufrufen, beispielsweise um ein Update oder ein Upgrade zu bestellen. Die Versionen die man nicht kaufen kann sollen deaktiviert werden und die die Sinn machen sollen fett angezeigt werden.
Kann ich das irgendwie machen das mein Programm dieses Applet einbindet oder irgendwie aufruft und dann diese Dinge steuert?
Wie wäre es, wenn du deinem Applet sagst: "Lies Parameter aus der URL aus und benutze diese zur Steuerung" und deinem Programm erklärst "öffne einen Browser und rufe folgende URL auf <URL des Applets>?<Parameter zum Ausblenden von nicht käuflichen Optionen>"?
ich dachte das eher so, das ich das Applet quasi zur Laufzeit in mein Programm einbinde und dass das Applet dann auf die Funktionen meines restlichen Programmes zugreifen kann und sich dadurch automatisch diese Punkte deaktivieren.
Ich kenne mich mit Applets ja nicht so aus, aber es erscheint mir recht unwahrscheinlich, das ein Applet ohne größere Verrenkungen auf irgendwas auf dem Clientrechner zugreifen darf. Meine Lösung erscheint mir schlüssiger.
Sag doch erst mal wofür du überhaupt das Applet brauchst, denn wie bereits gesagt läuft das Applet auch auf dem Client, unterscheidet sich also nur durch Restriktionen von deiner geplanten lokalen Anwendung.
das Applet soll :
1. Als Bestellformular dienen und direkt aus dem Client heraus und auch von der Website aus bedienbar sein
2.Einträge in eine Datenbank auf dem Server machen.
Was hindert mich als bösen Cracker daran das Applet zu dekomplilieren und mir die DB Zugangsdaten zu kopieren?
Wenn du dein Vorhaben trotz alledem umsetzen willst, mach einfach ein Panel auf das Applet das du sowohl im Applet, als auch dem Desktop Programm verwenden kannst.
die db soll eine embedded H2 sein(falls das geht, muss ich noch testen) die unterhalb des root-Verzeichnisses liegt, auf die kann man von aussen hin denke ich nicht zugreifen..
Wenn ich das Applet also einfach so in meine Anwendung einbaue und nicht über das Applet auf der Website gehe würde es die Datenbank auf dem lokalen Rechner suchen..
//EDIT: OK, ich versuche das mit dem Browser, also die Seite mit dem Applet in meinem Programm öffnen und Parameter übergeben?
Wie geht das?
die db soll eine embedded H2 sein(falls das geht, muss ich noch testen) die unterhalb des root-Verzeichnisses liegt, auf die kann man von aussen hin denke ich nicht zugreifen..
Wenn ich das Applet also einfach so in meine Anwendung einbaue und nicht über das Applet auf der Website gehe würde es die Datenbank auf dem lokalen Rechner suchen..
Versteh doch bitte das ein Applet eine lokale Applikation ist. Das läuft nicht auf dem Server.
Die Klasse wird heruntergeladen und vom Browser gestartet. That's it.
Wirklich in, oder den Browser?
Den Browser öffnest du mit Desktop.browse(URL).
Wenn du eine Seite in deiner Java GUI anzeigen willst, hängt es davon ab was auf der Seite ist und was der Browser können muss.
Mit JEditorPane bzw. JTextPane lassen sich einfache HTML-Seiten anzeigen.
Wenn du mehr willst kommst du nicht an einer Browser Komponente - wie zum Beispiel von jDic - vorbei.
-.- ich soll dem Bestellformular doch Parameter übergeben, damit dinge deaktiviert werden usw. die kann ich jetzt auf zwei arten mitgeben, entweder post, oder get...
ein aufruf im browser(get) ist genauso eine anforderung von daten wie ein aufruf per post, nur das beim post eben post-daten mitgeschickt werden. Das Ergebnis ist das selbe, man bekommt die aufgerufene Seite als Ergebnis zurück.
Mir ist die funktionsweise des HTTP Protokolls bekannt.
Desktop#browse startet einfach einen Browser und übergibt eine URL.
Wie willst du da Post Daten unterbringen?
Wenn du es über die Kommandozeile nicht machen kannst, dann auch nicht mit der Desktop Klasse.
Jetz wo ich grad drüber nachdenke.. kann ich denn Daten per HTTP verschicken und auswerten?
Dann kann ich das Formular direkt in das Programm einbauen und die Eingaben auf diese Weise verschicken..