Popular Posts
Word break tag : <wbr/> (HTML5) The  HTML  <wbr>  tag  is  used  defines  a  potential  line  break  point  if  needed.  This  stands  for  Word  BReak. This  is  u... CTE, recursive search WITH DepartmentSearch(DeptID, DeptParent, DeptName, OuID) AS (     -- 找出簽核者所屬部門     SELECT d.DeptID, d.DeptParent, d.DeptName, d.OuID     FR... Create web service client cross SSL with eclipse When creating web service cross SSL using eclipse, it occuss some error like below: And it can't build the client source from this wa...
Blog Archive
Stats
set/remove cookie using applet
jdk/jre 1.4 later, the library is included in plugin.jar file.
import java.applet.Applet;
import java.util.ArrayList;
import java.util.Date;

import netscape.javascript.JSObject;
import sgb.util.Strings;

public class CookieManager {
    private Applet applet;

    public CookieManager(Applet applet) {
        this.applet = applet;
    }

    private JSObject getDocument() {
        JSObject win = (JSObject) JSObject.getWindow(applet);
        return (JSObject) win.getMember("document");
    }

    public void setCookie(String name, String value) {
        if (Strings.isNullOrEmpty(name))
            throw new IllegalArgumentException();
        Cookie cookie = new Cookie();
        cookie.setName(name);
        cookie.setValue(value);
        setCookie(cookie);
    }

    public void setCookie(Cookie cookie) {
        if (cookie == null)
            throw new IllegalArgumentException();
        JSObject doc = getDocument();
        doc.setMember("cookie", cookie.toString());
    }

    public String getCookieValue(String name) {
        return getCookie(name).getValue();
    }

    public Cookie getCookie(String name) {
        if (Strings.isNullOrEmpty(name))
            throw new IllegalArgumentException();
        Cookie[] cookies = getCookies();
        for (Cookie cookie : cookies)
            if (cookie.getName().equals(name))
                return cookie;
        return null;
    }

    public Cookie[] getCookies() {
        JSObject doc = getDocument();
        String[] token = ((String) doc.getMember("cookie")).trim().split(";");
        ArrayList<Cookie> cks = new ArrayList<Cookie>();
        for (String tk : token) {
            String[] tks = tk.trim().split("=");
            String name = tks[0];
            String value = tks.length > 1 ? tks[1] : null;
            Cookie cookie = new Cookie();
            cookie.setName(name);
            cookie.setValue(value);
            cks.add(cookie);
        }
        return cks.toArray(new Cookie[0]);
    }

    public void removeCookie(String name) {
        if (Strings.isNullOrEmpty(name))
            throw new IllegalArgumentException();
        Cookie cookie = new Cookie();
        cookie.setName(name);
        cookie.setExpireDate(new Date(0));
        setCookie(cookie);
    }

}