package beans; import java.awt.*; import java.applet.*; import java.awt.event.*; import java.util.*; import java.net.*; import java.io.*; public class AppletForm extends Applet implements ActionListener { TextField inputField; Button submitButton; TextArea textArea; public void init() { setLayout(null); this.setSize(600,600); submitButton = new Button("Submit"); submitButton.addActionListener(this); this.add(submitButton); submitButton.setBounds(100,100,100,20); inputField = new TextField(); inputField.setEditable(true); add(inputField); inputField.setBounds(100,50,100,20); textArea = new TextArea(); textArea.setEditable(false); add(textArea); textArea.setBounds(300,50,200,200); } public void paint(Graphics g) { g.drawString("Form demo", 20, 20); } public void actionPerformed(ActionEvent event) { if (event.getSource() == submitButton) { showStatus("form has been submitted"); submitForm(); } else { showStatus("some other event occured"); } } private void submitForm() { try { URL url = new URL(getCodeBase(), "/handleAppletForm.do"); Properties props = new Properties(); props.put("inputField",inputField.getText()); String argString = ""; argString = toEncodedString(props); URLConnection con = url.openConnection(); con.setDoInput(true); con.setDoOutput(true); con.setUseCaches(false); con.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); DataOutputStream out = new DataOutputStream(con.getOutputStream()); out.writeBytes(argString); out.flush(); out.close(); InputStream in = con.getInputStream(); BufferedReader data = new BufferedReader(new InputStreamReader(in)); String incoming = ""; while (!incoming.equals("end")) { incoming = data.readLine(); textArea.append(incoming + "\n"); } showStatus(incoming); data.close(); } catch (MalformedURLException mue) { showStatus(mue.toString()); } catch (IOException ioe) { showStatus(ioe.toString()); } } private String toEncodedString(Properties arguments) { StringBuffer buf = new StringBuffer(); Enumeration names = arguments.propertyNames(); while (names.hasMoreElements()) { String name = (String)names.nextElement(); String value = arguments.getProperty(name); buf.append(URLEncoder.encode(name) + "=" + URLEncoder.encode(value)); if (names.hasMoreElements()) { buf.append("&"); } } return buf.toString(); } }