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.
Ich habe eine Frage. Ich habe mir einen LoginDialog gebaut und möchte nach dem erfolgreichen Login eine Session aufbauen. Ich kenne das bloß leider nur aus PHP und immer wenn ich danach suche finde ich häufig nur httpsession oder so. Ich bräuchte daher mal einen wink in die richtige Richtung.
Heißt das das ich nun diese HTTP-Session auch in einem Java Programm nutze auch wenn Sie nichts mit dem Web zutun hat. Das verwirrt mich gerade.:autsch:
Also vielleicht denke ich gerade nur falsch. nach dem Login will ich ja wissen für welchen User ich die Daten aus der Mysql auslesen muss damit ich im Dialog das richtig stehen habe und in PHP machte ich das mit Sessions.
Jetzt bin ich gerade noch mehr verwirrt. Klar brauch ich nur eine Variable mit dem Wert: Aktueller User
Aber ich brauch doch eine Session ID dafür oder nicht? Und die Session Variable ist doch eine Temporäre Variable für jeden User der sich einloggt. Da reicht es ja nicht eine Globale Variable zu benutzen sonst über schreiben die User sich gegenseitig. Ich glaub denke mal wieder zu kompliziert. :nie:
Oder kann jeder die Variable Aktueller User benutzen und jeder kann seinen Wert Speicher und abfragen?
schaut nach dem Cookie aus der php.ini-direktive [c]session_cookie[/c] (Standardmößig ist das [c]PHPSESSID[/c]). Ist der da, wird eine datei mit
PHP:
unserialize()
deserialisiert und kann dann im Script per
Code:
$_SESSION
abgefragt werden. Ist der Cookie nicht da, wird eine neue Session-ID erzeugt (irgendwas in die Richtung
Code:
md5(microtime() . rand())
) und der cookie wird gesetzt.
Nachdem das Skript beendet wurde wird das $_SESSION-Array wieder mit serialize() gespeichert.
Auf Java angewandt heisst das: wenn du dich bei einem web-server einloggen willst, musst du beim login den set-cookie Header abgreiffen und die session-id rausfiltern (und dann bei jedem request mitschicken).
Wenn das Teil nur lokal läuft ist eine Session totaler Schwachsinn. Da würde ich eher sowas machen:
Java:
class User
{
public static User CURRENT_USER;
public User()
{
// blabla
}
public static User login(String username, Stirng password)
{
// blabla
}
}
// im login-frame:
try
{
User.CURRENT_USER = User.login(username, password);
}
catch (PasswordException ex)
{
... usw. ...
Also ich hab in meiner ersten Ausbildung ITA c++ gelernt aber nie weiter eingesetzt. Danach mabe ich PHP gelernt und auch viel damit gemacht. Dann habe ich durch verschiedene Projekte Java eingesetzt aber nie gelernt. Also sind meine Java Grundlagen leider noch sehr gering und der vergleich mit PHP bringt mich häufig nicht weiter.
Daher war mir das mit public static User CURRENT_USER nicht bekannt.
Also ich hab in meiner ersten Ausbildung ITA c++ gelernt aber nie weiter eingesetzt. Danach mabe ich PHP gelernt und auch viel damit gemacht. Dann habe ich durch verschiedene Projekte Java eingesetzt aber nie gelernt. Also sind meine Java Grundlagen leider noch sehr gering und der vergleich mit PHP bringt mich häufig nicht weiter.
Daher war mir das mit public static User CURRENT_USER nicht bekannt.
das [c]static[/c] bewirkt, dass die Variable CURRENT_USER nicht an eine Instanz gebunden ist, sondern an die Klasse. [c]public static[/c]-Variablen kannst du immer mit Klassenname.Variable ansprechen.
Das [c]User[/c] in der Dekleration gibt den Typ an: eine Instanz der Klasse User. (Ein User-Array wäre [c]User[][/c]).
Du kannst dann also, global in deinem gesamten Programm durch [c]import User;[/c] mit User.CURRENT_USER auf den aktuell eingeloggten Benutzer zugreiffen. Wichtig ist natürlich auch, darauf zu achten, dass die [c]null[/c] sein kann.
mit der Dekleration [c]public static User CURRENT_USER;[/c] ist die Variable erstmal null. Wenn du dann darauf zugreiffen willst, fliegt eine NullPointerException.
@JavaMeister Also ich habe nie gesagt das ich sie nicht lernen will. Aber ich lerne besser an Beispielen. Daher programmiere ich etwas nach was ich in PHP schon gemacht habe damit ich in etwa weiß wie es geht aber Trotzdem lesen ich ein Buch zu den Grundlagen aber manchmal hackt es da Java ein wenig umfangreicher ist Gegensatz zu PHP.