Information

  • This info page: http://osprey7.npac.syr.edu:3768/users-docs/mispirli/Example.html
  • Applet URL: http://osprey7.npac.syr.edu:3768/users-docs/mispirli/ex.html
  • Output File: http://osprey7.npac.syr.edu:3768/users-docs/mispirli/output.html

  • Html
    <HTML>
    <applet code="ex.class" width=300 height=400>
    </applet>
    </HTML>
    

  • Applet
    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;
      }
    }  
    

  • CGI Script
    #!/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>";
    

  • cgi-lib.pl
    #!/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 .=  "
    "; foreach $key (sort keys(%in)) { ($out = $in{$key}) =~ s/\n/
    /g; $output .= "
    $key
    $out
    "; } $output .= "
    "; $* = $old; return $output; } # PrintVariablesShort # Nicely formats variables in an associative array passed as a parameter # Using one line per pair (unless value is multiline) # And returns the HTML string. sub PrintVariablesShort { local (%in) = @_; local ($old, $out); $old = $*; $* =1; foreach $key (sort keys(%in)) { if (($out = $in{$key}) =~ s/\n/
    /g) { $output .= "
    $key is
    $out
    "; } else { $output .= "$key is $out
    "; } } $* = $old; return $output; } 1; #return true