# applet + html



## Schneckenkind (8. Jan 2006)

Hi!

Vielleicht könnt ihr mir helfen. Ich habe gerade ein Applet programmiert - in Eclipse funktioniert alles hervorragend. Nur bei der Einbindung in den HTML Code happerts. Es wird mir dann im Browser zwar das Applet angezeigt, aber alle Daten die aus der Datenbank (Access) kommen, werden nicht angezeigt.

Woran kann das liegen? Was muss ich ändern?

Vielen Dank für eure Hilfe,

sabine

(HTML Datei ist im gleichen Ordner wie die .class Datei; Datenbank ebenfalls, eingebunden hab ich das Applet in HTML mit:

<APPLET code="Quizzer.class" width=900 height=700> )


----------



## Campino (8. Jan 2006)

ähm...
a) man kann das .class im code-Parameter des Applet-tags weglassen. Probier mal ob es dann geht...
b) öffnet Java die Access-datenbank oder wird ein DB-server ausgeführt, dem java eine anfrage schickt? Kann es sein, dass das in eclipse anders war?
c) Applets dürfe nur mit ihrem Heimat-Server Kontakt aufnehmen. Wenn man jetzt eine auf der Festplatte liegende HTML-Datei mit Applet öffnet, kann es sein, dass der Browser feststellt, dass ein Zugriff ein Zugriff auf den eigenen Rechner ist, es fliegt eine SecurityException. Dass in diesem Fall der Heim-Rechner und der Heimat-Server identisch sind, kann diese Exception nicht verhindern. Im Zweifel entscheidet die VM einen Zugriff zu blocken.


----------



## Schneckenkind (8. Jan 2006)

hi!

naja ich hab keine ahnung ob die datenbank sich öffnet. aber wie mir scheint, greift er nichtmal auf sie zu. sie ist aber im selben verzeichnis... 
securtiy... wie kann ich das umgehen? ich glaub, dass der html code irgendeinen hinweis auf die datenbank braucht - oder sowas wie einen "treiber"... 

mhmmmmmm ...

lg
sabine


----------



## L-ectron-X (8. Jan 2006)

Gibts in der Java-Console des Browsers eine Fehlermeldung?


----------



## Schneckenkind (8. Jan 2006)

nö gar nichts. er lässt halt einfach die datenbankinhalte weg... der rest wird normal angezeigt (bild etc.)


----------



## L-ectron-X (8. Jan 2006)

Tjo, ohne Fehlermeldung wirds schwierig, hilft wohl nur noch Posting von Code.


----------



## Schneckenkind (8. Jan 2006)

```
public void abfrage() throws Exception {
		// double ausgwfrage= 1+Math.floor(Math.random()*10);
		ausgwfrage++;
		Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

		//Connection verbindung = DriverManager
			//	.getConnection("jdbc:odbc:QuizzerDB");
		
		Connection verbindung = DriverManager.getConnection
        ("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Dokumente und Einstellungen/Franz/workspace/Uebungsprojekt WebEng2/QuizzerDB.mdb");
		
		Statement befehl = verbindung.createStatement();

		ResultSet datenmenge;
		datenmenge = befehl
				.executeQuery("SELECT * FROM Fragen, Antworten WHERE Antworten.FrageID=Fragen.FrageID");

		while (datenmenge.next()) {
			int frageID = datenmenge.getInt("FrageID");

			if (frageID == ausgwfrage) {
				frage = datenmenge.getString("Fragebezeichnung"); // Auslesen
																	// der Frage
				int antwortnr = datenmenge.getInt("AntwortNr"); // Auslesen der
																// ersten
																// AntwortNr
				level = datenmenge.getInt("Level");

				int j = 0; // Hilfsvariable für die Arraybelegung

				while (antwortnr < 4) { // für Antwortmöglichkeiten 1-3
					while (j < 4) {
						antw[j] = datenmenge.getString("Bezeichnung"); // Einlesen
																		// der
																		// Antworten
																		// in
																		// das
																		// Array
						status[j] = datenmenge.getBoolean("Status");
						j++;
						datenmenge.next(); // Zum nächsten Datensatz
											// weitergehen
						antwortnr = datenmenge.getInt("AntwortNr"); // Antwortnummer
																	// auslesen
						break;
					}
				}
				antw[j] = datenmenge.getString("Bezeichnung");
				status[j] = datenmenge.getBoolean("Status");
				antwort1.setLabel(antw[0]);
				antwort2.setLabel(antw[1]);
				antwort3.setLabel(antw[2]);
				antwort4.setLabel(antw[3]);
				antwort1.setForeground(Color.blue);
				antwort1.setFont(new Font("Arial", Font.ITALIC, 16));
				antwort2.setForeground(Color.blue);
				antwort2.setFont(new Font("Arial", Font.ITALIC, 16));
				antwort3.setForeground(Color.blue);
				antwort3.setFont(new Font("Arial", Font.ITALIC, 16));
				antwort4.setForeground(Color.blue);
				antwort4.setFont(new Font("Arial", Font.ITALIC, 16));
				Lfrage.setText("Frage: " + frage);
				Llevel.setText("Level " + level);
				break;
			}
		}
		verbindung.close();
```

Das ist unsere Abfrage Methode... ich versteh nicht, warums dann im Eclipse funktioniert - ohne irgendwelche Fehlermeldungen... pfffff 

Danke jedenfalls für deine Hilfe!!!


----------



## L-ectron-X (8. Jan 2006)

Ich habe gerade gesehen, dass wir hier an zwei Fronten kämpfen.
Daher *geschlossen*

Weiter gehts hier: http://www.java-forum.org/de/viewtopic.php?t=26250


----------

