从Applet中读取Cookie:Access Cookies from a Java Applet

WBOY
Lepaskan: 2016-06-07 15:36:33
asal
1181 orang telah melayarinya

来源:http://www.rgagnon.com/javadetails/java-0180.html Access Cookies from a Java Applet This Applet uses the package netscape.javascript.JSObject . To compile such program, you have to include in the CLASSPATH the file java40.jar if you

来源:http://www.rgagnon.com/javadetails/java-0180.html

Access Cookies from a Java Applet

This Applet uses the package netscape.javascript.JSObject. To compile such program, you have to include in the CLASSPATH the file java40.jar if you have the Netscape Communicator v4 installed or classes.zip for the Microsoft Internet Explorer. Compile with something like

Applet使用包netscape.javascript.JSObject。因为程序的需要,你首先把jre/lib/pulgin.jar加入到classpath路径中去,编译如下:

javac testcookie.java
Salin selepas log masuk

NOTE: The netscape.javascript.* package is now included in %JRE_HOME%/lib/jaws.jar file.

注:包netscape.javascript.* package现在已经包含在%JRE_HOME%/lib/jaws.jar 文件中。

[HTML file (testCookie.html)]

网页文件:

<font><br><br><br><applet code="TestCookie.class" mayscript height="150" width="200"><br></applet><br><br></font>
Salin selepas log masuk

[Java applet (TestCookie.java)]

Applet文件,TestCookie.java

import netscape.javascript.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class TestCookie extends Applet
    implements ActionListener {
  TextField tf1, tf2;
  Button b1, b2, b3;


  public void init() {
    tf1 = new TextField(20);
    tf2 = new TextField(20);
   
    b1 = new Button("Write Cookie");
    b2 = new Button("Read Cookie");
    b3 = new Button("Delete Coookie");
   
    setLayout(new FlowLayout());
    add(tf1);
    add(tf2);
    add(b1);
    add(b2);
    add(b3);
   
    b1.addActionListener(this);
    b2.addActionListener(this);
    b3.addActionListener(this);
    }
   
  public void actionPerformed(ActionEvent ae) {
    if (ae.getSource() == b1) {
       /* 
       **  write a cookie
       **    computes the expiration date, good for 1 month
       */
       java.util.Calendar c = java.util.Calendar.getInstance();
       c.add(java.util.Calendar.MONTH, 1);
       String expires = "; expires=" + c.getTime().toString();

       String s1 = tf1.getText() + expires;
       System.out.println(s1);
       
       JSObject myBrowser = JSObject.getWindow(this);
       JSObject myDocument =  (JSObject) myBrowser.getMember("document");
   
       myDocument.setMember("cookie", s1);
       }

    if (ae.getSource() == b2) {
       /*
       **   read a cookie
       */
       tf2.setText(getCookie());
       }

    if (ae.getSource() == b3) {
       /*
       **  delete a cookie, set the expiration in the past
       */
       java.util.Calendar c = java.util.Calendar.getInstance();
       c.add(java.util.Calendar.MONTH, -1);
       String expires = "; expires=" + c.getTime().toString();

       String s1 = tf1.getText() + expires;
       JSObject myBrowser = JSObject.getWindow(this);
       JSObject myDocument =  (JSObject) myBrowser.getMember("document");
       myDocument.setMember("cookie", s1);
       }
    }

    public String getCookie() {
      /*
      ** get all cookies for a document
      */
      try {
        JSObject myBrowser = (JSObject) JSObject.getWindow(this);
        JSObject myDocument =  (JSObject) myBrowser.getMember("document");
        String myCookie = (String)myDocument.getMember("cookie");
        if (myCookie.length() > 0)
           return myCookie;
        }
      catch (Exception e){
        e.printStackTrace();
        }
      return "?";
      }

     public String getCookie(String name) {
       /*
       ** get a specific cookie by its name, parse the cookie.
       **    not used in this Applet but can be useful
       */
       String myCookie = getCookie();
       String search = name + "=";
       if (myCookie.length() > 0) {
          int offset = myCookie.indexOf(search);
          if (offset != -1) {
             offset += search.length();
             int end = myCookie.indexOf(";", offset);
             if (end == -1) end = myCookie.length();
             return myCookie.substring(offset,end);
             }
          else
            System.out.println("Did not find cookie: "+name);
          }
        return "";
        }
}

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!