<HTML> <applet code="ex.class" width=300 height=400> </applet> </HTML>
import java.awt.*; import java.net.*; import java.io.*; import java.lang.String; public class ex extends java.applet.Applet { TextArea ta = new TextArea(); TextField status = new TextField("Please type below",40); Button button = new Button("Write to Server"); public void init() { setLayout(new BorderLayout(20,20)); add("North",status); add("Center",ta); add("South",button); } public boolean action(Event evt, Object arg) { if(evt.target instanceof Button) { String text_entered = ta.getText(); String sdata; sdata = "ta=" + text_entered; status.setText("Processing Request . . ."); String home = "osprey7.npac.syr.edu"; String script = "/users-cgi/mispirli/write.pl"; int port = 3768; Socket s = null; try { /* We connect to the http, port 3768 */ s = new Socket(home,port); /* We get streams for input and output */ DataOutputStream os = new DataOutputStream(s.getOutputStream()); DataInputStream is = new DataInputStream(s.getInputStream()); os.writeBytes("POST " + script + " HTTP/1.0\r\n" + "Content-type: application/x-www-form-urlencoded\r\n" + "Content-length: " + sdata.length() + "\r\n\r\n"); status.setText("Stuff set to machine"); os.writeBytes(sdata); is.close(); os.close(); } catch (Exception e) { showStatus("Error " + e); status.setText("Errors!!!"); if (s != null) try { s.close(); } catch(IOException ex) {} } status.setText(sdata); return true; } else return false; } }
#!/usr/local/bin/perl require 'cgi-lib.pl'; # # Read in Data # &ReadParse; open(OUTFILE,">/servers/cgi-http-class/htdoc/users-docs/mispirli/output.html"); select(OUTFILE); $ta = $in{'ta'}; print "The content of the text file is<HR> $ta <P>";
#!/usr/local/bin/perl -- -*- C -*- # Perl Routines to Manipulate CGI input # S.E.Brenner@bioc.cam.ac.uk # $Header: /people/seb1005/http/cgi-bin/RCS/cgi-lib.pl,v 1.2 1994/01/10 15:05:40 seb1005 Exp $ # # Copyright 1993 Steven E. Brenner # Unpublished work. # Permission granted to use and modify this library so long as the # copyright above is maintained, modifications are documented, and # credit is given for any use of the library. # ReadParse # Reads in GET or POST data, converts it to unescaped text, and puts # one key=value in each member of the list "@in" # Also creates key/value pairs in %in, using '\0' to separate multiple # selections # If a variable-glob parameter (e.g., *cgi_input) is passed to ReadParse, # information is stored there, rather than in $in, @in, and %in. sub ReadParse { if (@_) { local (*in) = @_; } local ($i, $loc, $key, $val); # Read in text if ($ENV{'REQUEST_METHOD'} eq "GET") { $in = $ENV{'QUERY_STRING'}; } elsif ($ENV{'REQUEST_METHOD'} eq "POST") { for ($i = 0; $i < $ENV{'CONTENT_LENGTH'}; $i++) { $in .= getc; } } @in = split(/&/,$in); foreach $i (0 .. $#in) { # Convert plus's to spaces $in[$i] =~ s/\+/ /g; # Convert %XX from hex numbers to alphanumeric $in[$i] =~ s/%(..)/pack("c",hex($1))/ge; # Split into key and value. $loc = index($in[$i],"="); $key = substr($in[$i],0,$loc); $val = substr($in[$i],$loc+1); $in{$key} .= '\0' if (defined($in{$key})); # \0 is the multiple separator $in{$key} .= $val; } return 1; # just for fun } # PrintHeader # Returns the magic line which tells WWW that we're an HTML document sub PrintHeader { return "Content-type: text/html\n\n"; } # PrintVariables # Nicely formats variables in an associative array passed as a parameter # And returns the HTML string. sub PrintVariables { local (%in) = @_; local ($old, $out); $old = $*; $* =1; $output .= "