Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hai. Ich möchte mit einem Applet über eine Internetverbindung auf eine DB zugreifen. Dazu habe ich ein entsprechendes HTML-Dokument und eine *.jar-Datei. Diese beiden Dateien stehen auf einem Web-Server und lassen sich auch über das Internet starten. Allerdings zieht sich der Browser bei jeder Änderung die komplette *.jar-Datei rein. Da bei einer Oracle-DB diese Datei fast 4,5 MB groß ist, dauert das mit einer ISDN-Verbindung ziemlich lange. Das möchte ich meinen Kunden auf jeden Fall ersparen.
Da ich noch nicht lange der Java-Gemeinde angehöre möchte ich die Meinung von Profis dazu hören. Gehe ich den richtigen Weg oder gibt es ganz andere, für die Kunden bessere, Lösungen.
Wenn ich das richtig verstanden habe, gehst du einen verkehrten Weg.
Warum überträgst du jedes mal die komplette Datenbank? Eine Datenbank läuft doch an einem Datenbankserver.
Du brauchst also nur das Applet mit dem Datenbankserver verbinden.
Oder ist in der jar-Datei der DB-Treiber drin?
Ich Vermute mal der DB-Treiber ist das Problem?
Nimm Webstart und verwende mehrere jars. Dann werden nur die jars geladen die sich auch verändert haben.
Entschuldigung, das ich mich erst jetzt wieder melde. Genau, mein Problem ist die Größe des Datenbank-Treibers in der Jar-Datei. Wenn ich Wildcard richtig verstehe, müsste ich die Oracle-DB-Treiber in eine eigene Jar-Datei packen und die Klassen, die immer wieder verändert werden, in eine weitere. Diese dann durch Komma getrennt in der HTML-Datei hinter archive eintragen. Ist das richtig???
Trotzdem muss der Anwender sich immer noch die Jar-Datei mit den GUI-Infos laden, wenn diese sich verändert hat. Bei einem ganz einfachen Applet sind das immerhin fast 1,5 MB. Über ISDN dauert das auch eine ganze Weile.
Gibt es eine bessere Möglichkeit, so das der Bediener so wenig wie möglich laden muss und fast alles auf dem Web-Server abläuft. Ich hoffe das ist keine allzu dumme Frage .
Von Webstart habe ich noch nix gehört. Vielleicht kann mir Wildcard eine grobe Zusammenfassung posten, was man damit meint. Dann habe ich schonmal einen Überblick und kann gezielter googeln.
Gibt es eine bessere Möglichkeit, so das der Bediener so wenig wie möglich laden muss und fast alles auf dem Web-Server abläuft. Ich hoffe das ist keine allzu dumme Frage .
Ja, mit serverseitigen Lösungen, wo der User nur noch die GUI in Form von HTML Tags gesendet bekommt und das eigentliche Programm auf dem Server abläuft als PHP, JSP oder wie mans eben brauchen kann ^^
Serverseitige Lösungen in Form von Servlets kann man z.B. unter Tomcat laufen lassen. Diese können dann die Datenbankabfrage machen und mit den Applets kommunizieren.
Verstehe ich das richtig? Über ein Applet kann man auf ein Java Servlet zugreifen, welches dann einen Connect zu einer DB herstellt oder eine Socket-Verbindung öffnet und die benötigten Daten zurück an das Applet schickt. :shock:
Und laufen dies dann auch unter Apache? Das Applet läuft auf dem Client und das Servlet auf dem Webserver?
Kennt ihr darüber vielleicht gute Literatut oder im www ein Tutorial?
Ich suche eine Lösung, bei der der Anwender über das Internet auf eine DB zugreifen kann. Allerdings soll zum Anwender nur so wenig wie möglich hochgeladen werden. Wie oben schon beschrieben, habe ich ein Applet, welches auf eine DB zugreift. Allerdings ist die Jar-Datei mit den z.B. Oracle-Treibern schon 4,5 MB groß. Das möchte ich keinem Anwender zumuten sich diese zu laden.
Ich kenne mich mit der Java-Programmierung noch nicht ganz so gut aus, daher meine Fragen. Aber deswegen bin ich ja auch unter Anfängerfragen :wink:
Also prinzipiell halte ich eine Architektur, wo man über ein Applet auf eine Datenbank zugreift für unsicher. Außerdem ist ja aufgrund des "Schmalbandanschlusses" sowieso ein "Thin-Client"angebracht. Am besten ist natürlich, wenn der Benutzer über einen Browser irgendwelche Abfragen aus der DB betrachten kann.
Daher würde ich vorschlagen einen Webserver mit Servletengine aufzusetzen (vorzugsweise Tomcat) und mit jsp und servlets zu arbeiten. Das Applet entfällt dann komplett. Der Benutzer ruft mit seinem Browser nur die jsp auf, die mit über Servlets auf die Datenbank zugreifen (die Servlets können dabei auch weitere "normale" Klassen zugreifen).
Ich empfehle dir dazu dich mit jsp und servlets allgemein und dem Tomcat insbesondere zu beschäftigen.
Ein einfaches Beispiel für ein Servlet ist:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Hallo extends HttpServlet
{
public static final long serialVersionUID = 0;
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException
{
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<HTML>" + "\n");
Page page = new Page(req);
String text = page.getText();
out.println(text);
out.println("\n" + "</HTML>");
}
}
page.getText() liefert dabei den HTML Code. Es findete hier noch keine Kommunikation zu einem Applet statt. Ein eigenes Thema ist, wie man das ganze in Tomcat einbaut.