import java.applet.Applet; import netscape.javascript.*; import java.text.*; import java.util.*; import java.awt.Graphics; /** * Cookies aus einem Applet heraus speichern und lesen. * Benutzt die LiveConnect-API von Netscape. */ public class CookieApplet extends Applet { // Das Format, in dem das Ablaufdatum eines Cookies gespeichert // werden muss. private static final String COOKIE_DATES = "EE, dd-MMM-yy HH:mm:ss zz"; // Der Name des Cookies. String name = "cookie"; public void init () { try { // Ein neues Cookie mit einer Lebensdauer von 1 Std. Date expires = new Date(System.currentTimeMillis() + 1000*60*60); String value = "Der Wert, der aus dem Cookie kam."; // Cookie setzen. setCookie(name, value, expires); } catch (Exception e) { } } public void paint(Graphics g) { // Den Inhalt des Cookies schreiben try { g.drawString("Wert: " + getCookie(name), 10, 10); } catch (JSException ex) { g.drawString("Fehler: " + ex.getMessage(), 10, 10); } } /** * Ein Cookie mit seinem Namen, seinem Wert und einem * Ablaufdatum erstellen. Wenn das Ablaufdatum in der * Vergangenheit liegt, dann wird das Cookie gelöscht. */ private void setCookie(String name, String value, Date expires) throws JSException { // Das richtige Format und die richtige Zeitzone für das // Cookie setzen. DateFormat format; format = new SimpleDateFormat(COOKIE_DATES, new Locale("en", "US")); format.setTimeZone(TimeZone.getTimeZone("GMT")); String cookie = name +"=" + value + "; expires=" + format.format(expires); System.out.println("Cookie: " + cookie); // Cookie speichern JSObject window = JSObject.getWindow(this); JSObject document = (JSObject )window.getMember("document"); document.setMember("cookie", cookie); } /** * Ein Cookie auslesen. Das Cookie wird aus der Liste * der Cookies ausgeschnitten. */ private String getCookie(String name) throws JSException { String cookie = getCookies(); String search = name + "="; if (cookie.length() > 0) { int off = cookie.indexOf(search); if (off != -1) { off += search.length(); int end = cookie.indexOf(";", off); if (end == -1) end = cookie.length(); return cookie.substring(off,end); } } return ""; } /** * Alle Cookies auslesen */ private String getCookies() throws JSException { JSObject window = JSObject.getWindow(this); JSObject document = (JSObject )window.getMember("document"); String myCookies = (String) document.getMember("cookie"); return myCookies; } }