Writing Servlets
GET vs POST
When HTML form data is passed to a servlet, there are two methods which can be used: GET and POST.
GET is the default mechanism.
When a browser uses a GET request, it passes the parameters by adding a string of name/value pairs to the URL itself.
For example, the URL http://localhost:8080/tutorials/servlet/HelloUser ?firstname=Gunther&lastname=Birznieks is providing two parameters to the HelloUser servlet: firstname and lastname.
A "?" mark chararacter separates the servlet name and the parameters.
"=" separates an individual name and value from each other while "&" separates multiple name/value pairs.
The advantage of GET is that you do not require an HTML form to call a URL with the GET method.
You can also manually type the parameters in a URL.
This allows you to reference a servlet with parameters called from a hyperlink on a page.
This also allows your users to bookmark the URL along with the data being passed to it.
The major disadvantage is that URLs are limited in length.
In addition, with enough data, they are fairly ugly to behold.
Also, although bookmarking is a nice capability, sometimes your users may not want to bookmark the data itself.
They may be interested in bookmarking just the application entrance.
If the data is on the URL, they have to manually trim it off in the bookmark if they want to enter the application rather than the state that they had bookmarked it at.
To solve the problem of the GET method, the CGI protocol standard evolved the POST method of sending data to a Servlet.
Instead of transferring data via the URL, the browser uses passes the content length of the data that it intends to send in the HTTP header.
Then, the body of the HTTP request itself rather than the URL will contain a stream of name/value pairs that lasts until the content-length is reached.
If content-length is not provided, then the POST data can pass an arbitrary amount of data to the servlet.
In this tutorial we start using the GET method because it is easier to see what is going on visually in the URL of the browser.
However, the POST method is usually used for most production applications because of the disadvantages involving the length of passed data and bookmarking issues.
If you wish to try the POST method in this tutorial, replace the plain <FORM> tag with <FORM METHOD="POST"> tag.
Then, in place of overriding doGet, you must override doPost method instead.
Overriding doPost instead of doGet is easy.
Just replace the word doGet with doPost!
The method signature is the same for both methods.
NEXT
Gunther Birznieks contributes to JavaBoutique's Web/Networking column.
Gunther currently works for Barclays Capital in London, one of the leading global investment banks in Europe and has previously worked as a senior computer scientist in the Human Genome Project.
Gunther is also known for writing several books on Web Programming (Perl, CGI, Java) as well as for co-creating Extropia with Selena Sol.
Extropia is one of the best known public domain web programming archives
Email: gunther@extropia.com.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|