On the client side, the form submission method (GET or POST) is specified in the attribute method of the form element.
On the server side, the difference between the processing of the GET request and the POST request is that in the first case the parameters string is set as an environmental variable QUERY_STRING, while in the second case the parameter string is put on the standard input stream. In our example, both methods are handled by the BASH shell script runjava
#!/bin/bash read a echo -n $a | java Methods |
This script invokes the following Java code
import java.util.Scanner; public class Methods { public static void main(String[] args) { String param_str = System.getenv("QUERY_STRING"); // attempt to get String method = "GET"; // params with GET if (param_str == null || param_str.length() < 2) // get params with POST { Scanner input = new Scanner(System.in); // reading the standard param_str = input.next(); // input stream method = "POST"; } // shorten the string param_str = param_str.substring(0, Math.min(param_str.length(), 100)); Scanner tokens = new Scanner(param_str); // tokenize the data tokens.useDelimiter("="); String name = tokens.next(); // get parameter name String value = tokens.next(); // get parameter value System.out.printf("Content-Type: text/html\n\n"); // compose HTML System.out.printf("<p>Response from Java</p>"); System.out.printf("<html><head><title></title></head><body>"); System.out.printf("Method: %s <br>", method); System.out.printf("Parameter string: %s <br>", param_str); System.out.printf("Parameter name: %s <br>", name); System.out.printf("Parameter value: %s <br>", value); System.out.printf("</body></html>"); } } |
Note that this simple script does not accept parameter strings exceeding 100 characters and does not do URI decoding.