Form Handling Servlet

 

Servlet that Handles Get and Post Methods

import java.io.*;
import java.util.*;

import javax.servlet.*;
import javax.servlet.http.*;

public class jbsGetPostEcho extends HttpServlet {

String queryString;
ServletOutputStream out;

    public void doPost (HttpServletRequest req, HttpServletResponse resp)
	throws ServletException, IOException
    {
        try {
            DataInputStream in = new DataInputStream ( req.getInputStream () );
            String s;
            queryString = "";
            while ( (s = in.readLine () ) != null )  {
                queryString += s;
            }  // end while
        }
        catch (IOException ioe)  {
        }  // end catch

        doGet ( req, resp );

    }  // end doPost

    public void doGet (HttpServletRequest req, HttpServletResponse resp)
	throws ServletException, IOException
    {
	    resp.setContentType("text/html");
	    out = resp.getOutputStream();

	    out.println("<html>");
	    out.println("<head><title>jbsEcho Servlet</title></head>");
	    out.println("<body>");

	    out.println("<h1>URL:</h1>");
	    out.println("<pre>");
	    out.println (HttpUtils.getRequestURL (req).toString ());
	    out.println("</pre>");

	    out.println("<h1>HTTP Header Variables:</h1>");
	    out.println("<pre>");
	    out.println("Request method: " + req.getMethod());
	    out.println("Request URI: " + req.getRequestURI());
	    out.println("Request protocol: " + req.getProtocol());
	    out.println("Servlet path: " + req.getServletPath());
	    out.println("Path info: " + req.getPathInfo());
	    out.println("Path translated: " + req.getPathTranslated());

	    if ( queryString == null ) queryString = req.getQueryString();
	    out.println("Query string: " + queryString);

	    out.println("Content length: " + req.getContentLength());
	    out.println("Content type: " + req.getContentType());
	    out.println("Server name: " + req.getServerName());
	    out.println("Server port: " + req.getServerPort());
	    out.println("Remote user: " + req.getRemoteUser());
	    out.println("Remote address: " + req.getRemoteAddr());
	    out.println("Remote host: " + req.getRemoteHost());
	    out.println("Authorization scheme: " + req.getAuthType());
	    out.println("</pre>");

	    parseQuery ( );

	    queryString = null;  // this is IMPORTANT

    }  // end doGet

    private void parseQuery ( )  {
        try  {
	        out.println("<h1>Query String Attribute/Value Pairs:</h1>");
	        out.println("<pre>");
            if ( queryString != null )  {
                try {
                    Hashtable attrvals = HttpUtils.parseQueryString ( queryString );
                    Enumeration e = attrvals.keys ();
                    while ( e.hasMoreElements() )  {
                        Object key = e.nextElement ();
                        Object value = attrvals.get ( key );
                        String values[] = (String[])value;
                        out.println( (String)key + ": " + values[0] );
                    }  // end while
                 }  // end try
                 catch (IllegalArgumentException iae  )  {
                 }  // end catch
            }  // end if
            else  {
                out.println("No query specified");
            }  // end else

	        out.println("</pre>");
	        out.println("</body></html>");

        }  // end try
        catch (IOException ioe)  {
        }  // end catch

    }  // end parseQuery


    public String getServletInfo() {
	    return "A servlet that echos HTTP header variables";
    }

}  // end jbsGetPostEcho

Run the servlet

Get Form

Post Form