mercredi 12 juin 2013

Servlet d'affichage des variables de contexte HTTP

Il est courant de devoir analyser l'ensemble des paramètres transmis à une application web hébergée par un serveur d'application JEE. La petite servlet suivante m'a rendue de très nombreux services, en simplement affichant dans une page HTML le contenu des paramètres qui lui ont été transmis ou renseignés par les proxy, reverse proxy, etc. positionnés entre le poste client et le serveur d'hébergement.

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

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

/**
 * @author ede
 * @version 1.0
 */
public class DisplayContext extends HttpServlet {

    private static final long serialVersionUID = -5462349448285112114L;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        service(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        service(request, response);
    }

    /**
     * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
     */
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        System.out.println("servlet-"+System.currentTimeMillis());
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head></head>");
        out.println("<body>");

        Enumeration<String> enu = request.getHeaderNames();
        String str;
        while(enu.hasMoreElements()) {
            str = enu.nextElement();
            out.println("<b>"+str+" :</b> "+request.getHeader(str)+"<br/>");
        }
        out.println("___________________________________________________<br/>");
        out.println("request.getRemoteUser()="+request.getRemoteUser()+"<br/>");
        out.println("___________________________________________________<br/>");
        out.println("request.getUserPrincipal()="+request.getUserPrincipal()+"<br/>");
        out.println("___________________________________________________<br/>");
        out.println("remote_user="+request.getParameter("remote_user")+"<br/>");
        out.println("___________________________________________________<br/>");

        out.println("");
        out.println("</body>");
        out.println("</html>");
        out.flush();
    }
}
Related Posts Plugin for WordPress, Blogger...