You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.0 KiB
Java
89 lines
2.0 KiB
Java
URL Redirector
|
|
|
|
import java.awt.*;
|
|
import java.awt.event.*;
|
|
import java.applet.*;
|
|
import java.net.*;
|
|
|
|
public class Redir extends Applet implements Runnable {
|
|
protected String urlString;
|
|
protected URL theNewURL;
|
|
protected final static int NSECONDS = 5;
|
|
protected Thread t;
|
|
|
|
public void init() {
|
|
try {
|
|
// Get the address from a PARAM...
|
|
urlString = getParameter("URL");
|
|
if (urlString == null) {
|
|
urlString = "MISSING URL";
|
|
throw new IllegalArgumentException(
|
|
"Redir requires a URL parameter in the HTML");
|
|
}
|
|
|
|
// Make up the URL object
|
|
theNewURL = new URL(urlString);
|
|
|
|
// debug...
|
|
// showStatus("URL = " + theNewURL);
|
|
|
|
} catch (Exception err) {
|
|
System.err.println("Error!\n" + err);
|
|
showStatus("Error, look in Java Console for details!");
|
|
}
|
|
}
|
|
|
|
public void start() {
|
|
if (theNewURL == null)
|
|
return;
|
|
|
|
t = new Thread(this);
|
|
t.start();
|
|
}
|
|
|
|
/** Print a little message to the user. */
|
|
public void paint(Graphics g) {
|
|
if (urlString != null)
|
|
g.drawString(urlString, 20, 50);
|
|
else
|
|
g.drawString("Initializing...", 20, 50);
|
|
}
|
|
|
|
/** If users moves off the page, set Thread t to null so
|
|
* we don't showDocument from within the middle of the new page!
|
|
*/
|
|
public void stop() {
|
|
t = null;
|
|
}
|
|
|
|
/** run, called by the Thread, does the work of sleeping
|
|
* for a fixed number of seconds then, if the user hasn't
|
|
* moved off the page, actually passing control to the new page.
|
|
*/
|
|
public void run() {
|
|
for (int i=NSECONDS; i>=0; i--) {
|
|
try {
|
|
Thread.sleep(1000);
|
|
if (t == null)
|
|
return;
|
|
} catch (InterruptedException e) {
|
|
// so what?
|
|
}
|
|
if (t == null)
|
|
return;
|
|
showStatus(Integer.toString(i));
|
|
|
|
if (t == null)
|
|
return;
|
|
|
|
showStatus("Ignition!");
|
|
// "And then a miracle occurs..."
|
|
getAppletContext().showDocument(theNewURL);
|
|
}
|
|
}
|
|
}
|
|
/*
|
|
<APPLET CODE=Redir.class WIDTH=300 HEIGHT=100 ">
|
|
</APPLET>
|
|
*/
|