Solved

Load an new HTML-page with Java

Posted on 1997-09-22
1
201 Views
Last Modified: 2010-05-18
Hallo,
I have built a java applet, where a user must fill out some fields. Then the user can press a button in the applet and the fields will be submit to a cgi-program. This cgi-prgram will be send back an new HTML-page. And this is my question: What must I do, do bring back this new site into the user-browser.
0
Comment
Question by:gans
1 Comment
 
LVL 1

Accepted Solution

by:
fadl earned 100 total points
Comment Utility
You have to just two things:
1) to write the selection applet that show()'s URL of 2)
2) write cgi script that generates new HTML page.

As for 1) this is some example how to do this:
Note that the only important place to look at is the
show(url) // lines

-------------------------------------------------------------
import java.applet.*;
import java.awt.*;
import java.net.URL;
import java.net.MalformedURLException;

public class ShowDocument extends Applet {
    URLWindow urlWindow;

    public void init() {
        Button button = new Button("Bring up URL window");
        add(button);
        validate();

        urlWindow = new URLWindow(getAppletContext());
        urlWindow.pack();
    }

    public void destroy() {
        urlWindow.hide();
        urlWindow = null;
    }

    public boolean action(Event event, Object o) {
        urlWindow.show();
        return true;
    }
}

class URLWindow extends Frame {
    TextField urlField;
    Choice choice;
    AppletContext appletContext;

    public URLWindow(AppletContext appletContext) {
        super("Show a Document!");

        this.appletContext = appletContext;

        GridBagLayout gridBag = new GridBagLayout();
        GridBagConstraints c = new GridBagConstraints();
        setLayout(gridBag);

        Label label1 = new Label("URL of document to show:", Label.RIGHT);
        gridBag.setConstraints(label1, c);
        add(label1);

        urlField = new TextField("http://java.sun.com/", 40);
        c.gridwidth = GridBagConstraints.REMAINDER;
        c.fill = GridBagConstraints.HORIZONTAL;
        c.weightx = 1.0;
        gridBag.setConstraints(urlField, c);
        add(urlField);

        Label label2 = new Label("Window/frame to show it in:", Label.RIGHT);
        c.gridwidth = 1;
        c.weightx = 0.0;
        gridBag.setConstraints(label2, c);
        add(label2);

        choice = new Choice();
        choice.addItem("(browser's choice)"); //don't specify
        choice.addItem("My Personal Window"); //a window named "My Personal Window"
        choice.addItem("_blank"); //a new, unnamed window
        choice.addItem("_self");
        choice.addItem("_parent");
        choice.addItem("_top"); //the Frame that contained this applet
        c.fill = GridBagConstraints.NONE;
        c.gridwidth = GridBagConstraints.REMAINDER;
        c.anchor = GridBagConstraints.WEST;
        gridBag.setConstraints(choice, c);
        add(choice);

        Button button = new Button("Show document");
        c.weighty = 1.0;
        c.ipadx = 10;
        c.ipady = 10;
        c.insets = new Insets(5,0,0,0);
        c.anchor = GridBagConstraints.SOUTH;
        gridBag.setConstraints(button, c);
        add(button);
    }

    public boolean handleEvent(Event event) {
        if (event.id == Event.WINDOW_DESTROY) {
            hide();
            return true;
        }
        return super.handleEvent(event);
    }

    public boolean action(Event event, Object o) {
        if ((event.target instanceof Button) |
            (event.target instanceof TextField)) {
            String urlString = urlField.getText();
            URL url = null;
            try {
                url = new URL(urlString);
            } catch (MalformedURLException e) {
                System.out.println("Malformed URL: " + urlString);
                return true;
            }

            if (url != null) {
                if (choice.getSelectedIndex() == 0) {
                    appletContext.showDocument(url);
                } else {
                    appletContext.showDocument(url, choice.getSelectedItem());
                }
            }
        }
        return true;
    }
}
-------------------------------------------------------------

As for 2)
Generate new HTML page by simply writting it to Syste.out, e.g

System.out.println("Content-type: text/html");
System.out.println(""); // empty line required
System.out.println("<HTML>");
System.out.println("you page goes here");
System.out.println("</HTML>");

Hope it helped
Michal




0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
hash value 2 38
Return ZipOutputStream using Servlet 2 32
ArrayIndexOutOfBoundException 9 30
mockito example issue 8 29
Introduction Java can be integrated with native programs using an interface called JNI(Java Native Interface). Native programs are programs which can directly run on the processor. JNI is simply a naming and calling convention so that the JVM (Java…
Java Flight Recorder and Java Mission Control together create a complete tool chain to continuously collect low level and detailed runtime information enabling after-the-fact incident analysis. Java Flight Recorder is a profiling and event collectio…
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now