How to print HttpServletRequest’s All Available Request Parameters and Request Attributes

If you ever debugged your J2EE application, you know the pain of finding out where you request parameters are on the HttpServletRequest object. I always get lost when I am inspecting the request object because it holds so much onto it. This example here shows you how to print all available request parameters and request attributes so you can easily look at what values those attribtues and parameters are holding.

If you run this servlet, you should be able to print these parameters and attributes on to you browser itself.

package com.kushal.tools;
/**
 * @author Kushal Paudyal
 * www.sanjaal.com/java
 * www.icodejava.com
 * 
 */
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.ibm.ws.http.HttpConnection;
import com.ibm.ws.http.HttpRequest;

public class HttpRequestParamsAndAttributesPrintServlet extends HttpRequest{

    public HttpRequestParamsAndAttributesPrintServlet(HttpConnection connection) {

        super(connection);

    }

    public void doGet(HttpServletRequest req, HttpServletResponse res) 
        throws ServletException, IOException {

        res.setContentType("text/html");
        PrintWriter out = res.getWriter();

        printRequestAttributes(req, out);

        printRequestParameters(req, out);

    }
    
    public void doPost(HttpServletRequest req, HttpServletResponse res) 
        throws ServletException, IOException {
        
        doGet(req, res);
    }

    /**
     * This method prints all the request parameters that are 
     * available on the HttpServletRequest.
     * 
     * The result will be printed back to the browser
     *
     */
    private void printRequestParameters(HttpServletRequest req, PrintWriter out) {

        out.println("Printing All Request Parameters From HttpSerlvetRequest:");

        Enumeration<String> requestParameters = req.getParameterNames();
        while (requestParameters.hasMoreElements()) {
            String paramName = (String) requestParameters.nextElement();
            out.println("Request Paramter Name: " + paramName 
                            + ", Value - " + req.getParameter(paramName));
        }
    }

    /**
     * This method prints all the request attributes that are 
     * available on the HttpServletRequest.
     * 
     * The result will be printed back to the browser.
     *
     */
    private void printRequestAttributes(HttpServletRequest req, PrintWriter out) {

        out.println("Printing All Request Parameters From HttpSerlvetRequest:");

        Enumeration<String> requestAttributes = req.getAttributeNames();
        while (requestAttributes.hasMoreElements()) {
            String attributeName = (String) requestAttributes.nextElement();
            out.println("Request Attribute Name: " + attributeName 
                            + ", Value - " + (req.getAttribute(attributeName)).toString());
        }
    }
}

Share