# Homepage in Java



## d3rbastl3r (22. Mrz 2007)

Hallo,
ich kann etwas Java da ich das als Hauptfach in der Scule habe doch leider lernt man da trotzdem nicht all zu viel deshalb wollte ich einfach mal mich an einen größeren Projekt ran machen (hat mir bei php erlernen sehr geholfen).

Ich habe da an einen OnlineKatalog für eine kleine Werkstatt gedacht. Es existiert zwar schon ein OnlineKatalog doch ist er im moment in PHP programmiert, basierend auf MySQL datenbank, den ich in meinem Praktikum programmiert habe, nun wollte ich den HTML und teil des PHP Codes gegen Java ersetzen.

Zuerst habe ich einpaar fragen 

F1:  Ich programmiere erstmal ein Java Programm, gibt es was speziälles zu beachten? Können probleme bei der einbindung in HTML auftreten?

Die ganzen DB Abfragen möchte ich nicht in Java machen da es unsicher ist, jeder kann dann die Zugangsdaten, Feldnamen, usw... ansehen.
F2: Kann ich ganz normal die SQL Abfragen in PHP programmieren und dann die PHP Dateien mit dem gestartetem Java Programm ausführen und die Ergebnisse der Abfragen wieder in das Java Programm übermitteln ohne dass die Home Page neu aufgeruffen werden muss?

F3: Geht das ganze auf einem herkömlichen Apache Server oder muss ich da für den server noch einen eigenen JavaServer programmiert der mit dem, in die HomePage eingebundenem Client kommuniziert?

Das wars fürs erste ^^ aber es kommen ganz sicher weitere Fragen


----------



## Wildcard (22. Mrz 2007)

häh?  :bahnhof: 
Was soll das werden? JSP? Ein Applet?  ???:L


> Die ganzen DB Abfragen möchte ich nicht in Java machen da es unsicher ist, jeder kann dann die Zugangsdaten, Feldnamen, usw... ansehen.


Und nochmal: häh?  ???:L


----------



## d3rbastl3r (22. Mrz 2007)

Es soll kein JScript werden.
Obs ein Applet werden soll weis ich nicht, wenn man eine normale JavaAnwendung im Web nicht aufruffen kann dann wohl ein Applet. Wo ist eigentlich der unterschied zwischen normaler JAnwendung und einem JApplet? Habe bisher nur Anwendungen programmiert.

Zu der DB: Wenn ich die  Datenbank Zugangsdaten in Java schreibe dann kann die jeder ansehen da die JDatei Lokal abgespeichert wird. Bei PHP ist es nicht der Fall da dies nur Serverseitig ausgeführt wird.


----------



## Wildcard (22. Mrz 2007)

Ich blicks nicht. Wie willst du denn eine Homepage gegen eine Applikation bzw. Applet austauschen?
Was eine Applikation ist sollte dir bekannt sein (Word, Firefox,...). Ein Applet ist Java Programm das vom Browser gestartet wird.


----------



## d3rbastl3r (22. Mrz 2007)

OK, dann ist es wohl ein Applet was ich machen wollte ^^

Naja, austauschen will ich es nicht ganz, aber ein Applet wird vom Browser aufgeruffen. In diesen lassen sich Buttons einsetzen die alle einen Icon bekommen und eine Navigation durch die Seite ermöglichen. Bilder lassen sich auch Laden die dann für das Design verwendet werden. Das ganze soll so aussehen wie in Flash nur halt mit JApplet.


----------



## Wildcard (22. Mrz 2007)

Die Idee hört sich für mich zwar nicht so prikelnd an, aber ist ja nicht mein Bier.
F1: Der User hat eventuell kein Java
F2: ein Applet kann eine Verbindung zum Server aufnehmen.
F3: Hängt davon ab was du vorhast. Für das Applet ist es egal was da auf dem Server läuft.


----------



## Leroy42 (22. Mrz 2007)

Das hat mit Applets rein gar nichts zu tun.

Was du brauchst sind Servlets (JSPs) die auf dem Server
die bisherigen PHP-Anweisungen ersetzen.


----------



## Wildcard (22. Mrz 2007)

Leroy42 hat gesagt.:
			
		

> Das hat mit Applets rein gar nichts zu tun.
> 
> Was du brauchst sind Servlets (JSPs) die auf dem Server
> die bisherigen PHP-Anweisungen ersetzen.


Dachte ich ja eigentlich auch, aber er will ja was Flashartiges für die Navigation und das wäre dann schon ein Applet


----------



## d3rbastl3r (22. Mrz 2007)

OK, Danke erstmal  werde mich mal über Applets informieren.


----------



## d3rbastl3r (22. Mrz 2007)

So, habe nun was versucht was aber irgendwie nicht unbedingt klappt, weis ich auch nicht wieso.


```
// Hier der Java Code
package Homepage;

import java.applet.*;
import java.awt.*;

public class UserInterface extends Applet{
	
	public static void main(String[] args) {
		UserInterface homepage = new UserInterface();
	}
	
	// Aufruf beim Start als Applet
	public void init() {
		Frame f =   new Frame( "Das Fenster zur Welt" );  
	    f.setSize  ( 300, 200 );
	    f.setVisible  ( true );
	}
}
```


```
// Und hier der HTML Code
<html>
<head>
<title>Java-Applets einbinden</title>
</head>
<body>
  <applet code="UserInterface.class" width="800" height="600">
  </applet>
</body>
</html>
```

Natürlich liegt die class Datei in dem selben ordner wie die html Datei.


----------



## Wildcard (22. Mrz 2007)

Warum machst du in einem Applet einen Frame auf?


----------



## d3rbastl3r (22. Mrz 2007)

weis ich nicht -.- aber das doch nicht der Grund wieso das Programm nicht läuft oder?
Wenn ich das Programm mit Eclipse ausführe läuft alles, wenn mit der html Datei dann läuft nix.


----------



## Wildcard (22. Mrz 2007)

Dann poste mal die Exception.


----------



## d3rbastl3r (22. Mrz 2007)

Applet UserInterface not inited.
Fehler beim laden Java-Applets.


----------



## Wildcard (22. Mrz 2007)

In der Java Konsole sollte eine Exception stehen


----------



## d3rbastl3r (22. Mrz 2007)

Ömm, hmm, wie schon gesagt, in eclipse Kompiliert und führt er das Applet ganz normal aus.
Die HTML Datei habe ich in Eclipse aber auch nicht drinne.

edit: Hmm, beim Kompilieren kommt zwar kein Fehler jedoch eine Warnung:
Die serialisierbare Klasse UserInterface deklariert kein statisches finales Feld 'serialVersionUID' des Typs 'long'	Homepage/Homepage	UserInterface.java	Zeile 6


----------



## Wildcard (22. Mrz 2007)

Java Konsole aufmachen -> Exception rauskopieren -> posten


----------



## d3rbastl3r (22. Mrz 2007)

Da steht irgendwie nix, in der Konsole :/


----------



## Wildcard (22. Mrz 2007)

Wenn ein Applet nicht gestartet wird muss was in der Fehlerkonsole stehen.


----------



## The_S (23. Mrz 2007)

Ohne dir zu nahe treten zu wollen, bleib erst noch ein bisschen im Unterricht und Versuch dich an kleineren Projekten, bevor du ihr komische Sachen machst und selber net weißt, was du tust  .


----------



## L-ectron-X (23. Mrz 2007)

Die Warnung bekommt man zu sehen, wenn das Interface java.io.Serializable im Spiel ist. Bis Java 1.4.2 war es nicht Pflicht (keine Warnung), eine spezielle Variable in den Code einzufügen. Dann kam es beim Deserialisieren zu nicht behebbaren Fehlern, die auf unterschiedliche Klassenversionen eines Objektes zurückzuführen waren. Seit Java 1.5 muss diese Variable eingefügt werden, um dieses Problem zu umgehen.
Ist aber nichts Schlimmes, wenn der Code in Ordnung ist und alle Objekte die gleiche Klassenversion haben (komplett neu kompiliert und serialisierte Objekte gelöscht), wird das Programm trotzdem funktionieren, weil die Serialization Runtime einen Standardwert für diese Variable erzeugt.

Das Problem kann umgangen werden, wenn du in deine Klasse ein statisches, finales Feld mit dem Namen "serialVersionUID" vom Typ long einsetzt.
http://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html

```
static final long serialVersionUID = 1L;
```

Alternativ kannst du Eclipse so einstellen, dass sie diese Warnung ignoriert.
Preferences -> Java -> Compiler -> Errors/Warning -> Potential programming problems -> Serializable


----------



## d3rbastl3r (23. Mrz 2007)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Ohne dir zu nahe treten zu wollen, bleib erst noch ein bisschen im Unterricht und Versuch dich an kleineren Projekten, bevor du ihr komische Sachen machst und selber net weißt, was du tust  .



Ich frage mich was dieser Kommentar (siehe Quote) bringen soll :?:
Bei meinem Problem hilft es nicht weiter :bahnhof: 
Was neues lerne ich daraus auch nicht ???:L 

Meine Idee werde ich ganz sicher nicht hinschmeißen da ich ja was lernen will und nach deinem Kommentar zu beurteilen scheint es so als ob du jeder neuer Information das Lernen verweigerst, oder denkst dass wenn nur einer was nicht kann es auch nie lernen wird.    :bloed:


----------



## d3rbastl3r (23. Mrz 2007)

Wildcard hat gesagt.:
			
		

> Wenn ein Applet nicht gestartet wird muss was in der Fehlerkonsole stehen.



Ach jetzt habe ich es ^^
Dachte du meinst die Fehlerkonsole in Eclipse, dabei muss ich nur auf das leere Fenster, wo normelerweise das Applet erschienen währe, rechtsklicken und die Java Konsole aufruffen ^^





```
java.lang.NoClassDefFoundError: UserInterface (wrong name: Homepage/UserInterface)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
	at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:163)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:119)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
	at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:591)
	at sun.applet.AppletPanel.createApplet(AppletPanel.java:721)
	at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1781)
	at sun.applet.AppletPanel.runLoader(AppletPanel.java:650)
	at sun.applet.AppletPanel.run(AppletPanel.java:324)
	at java.lang.Thread.run(Thread.java:595)
java.lang.NoClassDefFoundError: UserInterface (wrong name: Homepage/UserInterface)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
	at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:163)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:119)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
	at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:591)
	at sun.applet.AppletPanel.createApplet(AppletPanel.java:721)
	at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1781)
	at sun.applet.AppletPanel.runLoader(AppletPanel.java:650)
	at sun.applet.AppletPanel.run(AppletPanel.java:324)
	at java.lang.Thread.run(Thread.java:595)
```

Habe jetzt den Quelltextabschnitt

```
package Homepage;
```

entfernt, und schon läuft es.
Wer weiß wieso :?:


----------



## Wildcard (23. Mrz 2007)

> UserInterface (wrong name: Homepage/UserInterface)


Ein package oder Verzeichnis Problem.


----------



## The_S (23. Mrz 2007)

Ich sage nicht, dass du deine Idee verwerfen sollst oder aufhören sollst zu lernen, aber bei deinem momentanen Kenntnisstand wird das Projekt nie was. Ich hab dir ja den Tipp gegeben, dich erstmal an leichteren Aufgaben zu versuchen bevor du dich an sowas ran machst. Wenn du mehr Erfahrung hast, dann musst du entscheiden was du möchtest. JSPs kombiniert mit Servlets => Ersatz für PHP oder eine animierte, neue navigation, die aber nur User ausführen können, die auch Java installiert haben => Applets.

Vorher sehe ich für dich leider schwarz. Du kannst keine Website von php in Java umsetzen, wenn du  nicht mal die Basics beherrscht.  Man kann evtl. PHP auf diese Art lernen, PHP ist ja für nichts anderes gemacht, aber keine komplexe Programmiersprache wie Java! eine Webanwendung ist nur ein kleiner Bereich, den man mit Java realisieren kann.


----------



## d3rbastl3r (23. Mrz 2007)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Ich sage nicht, dass du deine Idee verwerfen sollst oder aufhören sollst zu lernen, aber bei deinem momentanen Kenntnisstand wird das Projekt nie was. Ich hab dir ja den Tipp gegeben, dich erstmal an leichteren Aufgaben zu versuchen bevor du dich an sowas ran machst. Wenn du mehr Erfahrung hast, dann musst du entscheiden was du möchtest. JSPs kombiniert mit Servlets => Ersatz für PHP oder eine animierte, neue navigation, die aber nur User ausführen können, die auch Java installiert haben => Applets.
> 
> Vorher sehe ich für dich leider schwarz. Du kannst keine Website von php in Java umsetzen, wenn du  nicht mal die Basics beherrscht.  Man kann evtl. PHP auf diese Art lernen, PHP ist ja für nichts anderes gemacht, aber keine komplexe Programmiersprache wie Java! eine Webanwendung ist nur ein kleiner Bereich, den man mit Java realisieren kann.



1. Mir ist klar dass nur User dies ausführen können die Applets installiert haben, dies trifft auch auf die meisten zu.
2. PHP soll nicht ersetzt werden, lediglich die HTML Benutzeroberfläche.
3. Dass die Webanwendung nur ein kleiner Bereich von java ist ist mir auch schon klar, da ich aber mit Applet´s noch NIE was zutun hatte, hatte ich davon auch keine ahnung doch studieren geht über probieren.


----------



## Leroy42 (23. Mrz 2007)

d3rbastl3r hat gesagt.:
			
		

> 1. Mir ist klar dass nur User dies ausführen können *die Applets installiert haben*, dies trifft auch auf die meisten zu.


  :shock: 

Jetzt gebe ich Hobbit auch Recht. (  )


----------



## The_S (23. Mrz 2007)

Gut, dann schaut die Sache schon ganz anders aus  . Bis jetzt ist aus keinem deiner Posts (für mich verstänldich) hervorgegangen, dass es sich lediglich um eine Navigation auf verschiedene Teile deiner Homepage geht und nicht um das komplette ersetzen deiner Webanwendung.

Ich nehme alles zurück und behaupte das Gegenteil  . Ich habe auch ziemlich am Anfang angefangen eine website komplett aus applets zusammen zu bauen. Heute seh ich, dass das einfach nur kacke aussieht, aber es war eine gute Erfahrung und hat mich weiter gebracht und die Homepage, die ich damit aufgebaut hab, wird schon seit langem net mehr gefplegt  .


----------



## d3rbastl3r (23. Mrz 2007)

Leroy42 hat gesagt.:
			
		

> d3rbastl3r hat gesagt.:
> 
> 
> 
> ...



Meine natürlich Java (Applets können nur von Usern ausgeführt werden die Java installiert haben)



			
				Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Ich habe auch ziemlich am Anfang angefangen eine website komplett aus applets zusammen zu bauen. Heute seh ich, dass das einfach nur kacke aussieht, aber es war eine gute Erfahrung und hat mich weiter gebracht und die Homepage, die ich damit aufgebaut hab, wird schon seit langem net mehr gefplegt



Nun ja, gelernt hast dabei sicher ne menge über java


----------



## d3rbastl3r (23. Mrz 2007)

Hmm, kennt einer gute HomePage mit Java Tutorials -> AWT ?
Brauche die Klassen von AWT und deren Methoden mit beschreibung damit ich weiß welche Elemente mir in AWT zur verfügung stehen.


----------



## Leroy42 (23. Mrz 2007)

d3rbastl3r hat gesagt.:
			
		

> Nun ja, gelernt hast dabei sicher ne menge über java



_Alles ist relativ!_

( :bae: )


----------



## The_S (23. Mrz 2007)

@bastler

http://www.galileocomputing.de/openbook/javainsel6/

ich würde dir aber swing anstatt awt empfehlen

@leroy

biste wieder gesund ja? Kam ja lange Zeit kein einziger Kommentar mehr von dir über mich ... hab mir scho sorgen gemacht und gehofft, dass ich dich net verärgert hab


----------



## Caffè Latte (25. Mrz 2007)

Hi,

wenn ich mal meinen Senf dazugeben darf:

ich glaube nicht, dass du Erfolg haben wirst, wenn du gleich mit Applets anfängst. GUI-Programmierung kommt IMMER nach den Grundlagen. Ein gutes Buch wäre "die Insel" (such hier mal danach).

Wenn du Java lernen willst, musst du eine sehr steile Lernkurve in Kauf nehmen. D.h. am Anfang wirst du nicht viel sinnvolles programmieren können. Und wenn du schon in Richtung Webentwicklung gehen willst, dann befasse dich nach den Grundlagen mit Servlets. Damit kannst du dann das machen, was du auch mit PHP machen kannst - nur besser. Servlets kannst du aber nicht auf jedem Hosting-Angebot der Feld-Wald-und-Wiesen-Provider laufen lassen; du brauchst dazu einen Servlet Conatiner, wie z.B. den Apache Tomact.


----------



## Guest (25. Mrz 2007)

d3rbastl3r hat gesagt.:
			
		

> Hmm, kennt einer gute HomePage mit Java Tutorials -> AWT ?
> Brauche die Klassen von AWT und deren Methoden mit beschreibung damit ich weiß welche Elemente mir in AWT zur verfügung stehen.



dazu musst du in die API Docs gucken


----------



## The_S (26. Mrz 2007)

Caffè Latte hat gesagt.:
			
		

> Ein gutes Buch wäre "die Insel" *(such hier mal danach).*



Du weißt, dass ich den Link in einem Beitrag über dir gepostet habe?  :bae:


----------



## Caffè Latte (26. Mrz 2007)

Ich gebe zu das überlesen zu haben, da ich übersehen hatte, dass der Thread mehr als eine Seite hat. Aufgrund meines Altersstarrsinns musste ich aber posten.


----------



## d3rbastl3r (27. Mrz 2007)

Caffè Latte hat gesagt.:
			
		

> Hi,
> 
> wenn ich mal meinen Senf dazugeben darf:
> 
> ...



Naja, wie ich schon erwähnt habe habe ich Java in der Schule als einer der Hauptfächer
Mache übrigens (Fachabitur als Informationstechnischer Assistent) im dritten Jahr.

Braucht mir also nicht immer wieder, immer wieder, immer wieder, immer wieder, ... sagen dass ich erst die Gruntlagen lernen soll da ich die einwenig beherrsche, nunja, soweit JBuilder zulässt. Privat programmiere ich unter Linux mit Eclipse (naja, bis das Projekt abflug machte und die .java datei sich ohne neuen Projekt zu erstellen nicht einfügen ließ) jetzt progge ich erstmal mit Kate. Habe auch schon als Projekt für die Schule VierGewinnt programmiert. Da aber JBuilder alles im bereich Grafik übernimmt kann ich dies nicht wollte aber mal lernen.


----------



## The_S (27. Mrz 2007)

Caffè Latte hat gesagt.:
			
		

> Ich gebe zu das überlesen zu haben, da ich übersehen hatte, dass der Thread mehr als eine Seite hat. Aufgrund meines Altersstarrsinns musste ich aber posten.



OK, genehmigt  :lol:


----------

