筑波大学 システム情報系 情報工学域
                                       新城 靖
                                       <yas@cs.tsukuba.ac.jp>
このページは、次の URL にあります。
	http://www.coins.tsukuba.ac.jp/~syspro/2018/2018-06-13
/cgi-hello-java.html
あるいは、次のページから手繰っていくこともできます。
	http://www.coins.tsukuba.ac.jp/~syspro/2018/
	http://www.coins.tsukuba.ac.jp/~yas/
普通は、Java 言語で CGI プログラムを作成することはしない。そうではなく、 Java Servlet、Java JavaServer Pages、等の Java のプログラムをサーバ側で 実行するための専用の仕組みを使う。Java Servlet は、CGI のオーバーヘッド を避けるために、考案された仕組みである。CGI とは異なり、 fork + exec が行われないので実行が軽い。
このプログラムは、手続き的に書かれており、オブジェクト指向のプログラム ではない。CGI の仕組みを理解することには適しているが、真似をすべきでは ない。
   1:	/*
   2:	  CgiHelloJava.java --簡単な CGI のプログラム (Java版)
   3:	  ~yas/syspro/www/CgiHelloJava.java
   4:	  Created on: 2018/07/29 14:05:12   5:	*/
   6:	
   7:	class CgiHelloJava
   8:	{
   9:	        public static void main(String argv[])
  10:	        {
  11:	                print_header();
  12:	                print_content();
  13:	        }
  14:	        public static void print_header()
  15:	        {
  16:	                stdout.printf("Content-Type: text/html\n");
  17:	                stdout.printf("\n");
  18:	        }
  19:	        public static void print_content()
  20:	        {
  21:	                stdout.printf("<HTML><HEAD></HEAD><BODY>\n");
  22:	                stdout.printf("hello.\n");
  23:	                stdout.printf("</BODY></HTML>\n");
  24:	        }
  25:	
  26:	        static java.io.BufferedReader stdin = 
  27:	                new java.io.BufferedReader( new java.io.InputStreamReader(System.in) );
  28:	        static java.io.PrintStream stdout = System.out;
  29:	        static java.io.PrintStream stderr = System.err; 
  30:	}
1: #!/bin/sh 2: 3: exec java CgiHelloJava
<H2><A ID="cgi-example-get">CGI の GET メソッドを使う例</A></H2>
<FORM ACTION="cgi-hello-java.cgi" method="get">
    <P>
    <INPUT type="submit" value="say hello">
    </P>
</FORM>
<H2><A ID="cgi-example-post">CGI の POST メソッドを使う例</A></H2>
<FORM ACTION="cgi-hello-java.cgi" method="post">
    <P>
    <INPUT type="submit" value="say hello">
    </P>
</FORM>