"Extracting the needed information from this form data is traditionally one of the most tedious parts of CGI programming. First of all, you have to read the data one way for GET requests (in traditional CGI, this is usually via the QUERY_STRING environment variable), and another way for POST requests (usually be reading the standard input). Second, you have to chop the pairs at the ampersands, then separate the parameter names (left of the equals signs) from the parameter values (right of the equals signs). Third, you have to URL-decode the values. Alphanumeric characters get sent unchanged, but spaces get converted to plus signs and other characters get converted to %XX where XX is the ASCII (or ISO Latin-1) value of the character, in hex."
One of the nice features of Java servlets is that all of the form parsing is handled automatically. In part 4 of Server-Side Web Applications Using Servlets and JSP, Marty Hall covers URL-encoding, GET, POST, and all the rest.