home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 November / PCONLINE_11_99.ISO / filesbbs / OS2 / APCHSSL2.ZIP / OS2HTTPD / servlets / SnoopServlet.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-12-12  |  4.6 KB  |  143 lines

  1. import java.io.IOException;
  2. import java.util.Enumeration;
  3. import javax.servlet.GenericServlet;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.ServletOutputStream;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import javax.servlet.http.HttpUtils;
  10.  
  11. public class SnoopServlet extends HttpServlet {
  12.    public void doPost(HttpServletRequest var1, HttpServletResponse var2) throws ServletException, IOException {
  13.       if (var1.getContentLength() > 8192) {
  14.          var2.setContentType("text/html");
  15.          ServletOutputStream var3 = var2.getOutputStream();
  16.          var3.println("<html><head><title>Too big</title></head>");
  17.          var3.println("<body><h1>Error - content length >8k not ");
  18.          var3.println("</h1></body></html>");
  19.       } else {
  20.          this.doGet(var1, var2);
  21.       }
  22.    }
  23.  
  24.    public void doGet(HttpServletRequest var1, HttpServletResponse var2) throws ServletException, IOException {
  25.       var2.setContentType("text/html");
  26.       ServletOutputStream var3 = var2.getOutputStream();
  27.       var3.println("<html>");
  28.       var3.println("<head><title>Snoop Servlet</title></head>");
  29.       var3.println("<body>");
  30.       var3.println("<h1>Requested URL:</h1>");
  31.       var3.println("<pre>");
  32.       var3.println(HttpUtils.getRequestURL(var1).toString());
  33.       var3.println("</pre>");
  34.       Enumeration var4 = ((GenericServlet)this).getServletConfig().getInitParameterNames();
  35.       if (var4 != null) {
  36.          boolean var5 = true;
  37.  
  38.          while(var4.hasMoreElements()) {
  39.             if (var5) {
  40.                var3.println("<h1>Init Parameters</h1>");
  41.                var3.println("<pre>");
  42.                var5 = false;
  43.             }
  44.  
  45.             String var6 = (String)var4.nextElement();
  46.             var3.println(" " + var6 + ": " + ((GenericServlet)this).getInitParameter(var6));
  47.          }
  48.  
  49.          var3.println("</pre>");
  50.       }
  51.  
  52.       var3.println("<h1>Request information:</h1>");
  53.       var3.println("<pre>");
  54.       this.print(var3, "Request method", var1.getMethod());
  55.       this.print(var3, "Request URI", var1.getRequestURI());
  56.       this.print(var3, "Request protocol", var1.getProtocol());
  57.       this.print(var3, "Servlet path", var1.getServletPath());
  58.       this.print(var3, "Path info", var1.getPathInfo());
  59.       this.print(var3, "Path translated", var1.getPathTranslated());
  60.       this.print(var3, "Query string", var1.getQueryString());
  61.       this.print(var3, "Content length", var1.getContentLength());
  62.       this.print(var3, "Content type", var1.getContentType());
  63.       this.print(var3, "Server name", var1.getServerName());
  64.       this.print(var3, "Server port", var1.getServerPort());
  65.       this.print(var3, "Remote user", var1.getRemoteUser());
  66.       this.print(var3, "Remote address", var1.getRemoteAddr());
  67.       this.print(var3, "Remote host", var1.getRemoteHost());
  68.       this.print(var3, "Authorization scheme", var1.getAuthType());
  69.       var3.println("</pre>");
  70.       Enumeration var9 = var1.getHeaderNames();
  71.       if (var9.hasMoreElements()) {
  72.          var3.println("<h1>Request headers:</h1>");
  73.          var3.println("<pre>");
  74.  
  75.          while(var9.hasMoreElements()) {
  76.             String var12 = (String)var9.nextElement();
  77.             var3.println(" " + var12 + ": " + var1.getHeader(var12));
  78.          }
  79.  
  80.          var3.println("</pre>");
  81.       }
  82.  
  83.       var9 = var1.getParameterNames();
  84.       if (var9.hasMoreElements()) {
  85.          var3.println("<h1>Servlet parameters (Single Value style):</h1>");
  86.          var3.println("<pre>");
  87.  
  88.          while(var9.hasMoreElements()) {
  89.             String var13 = (String)var9.nextElement();
  90.             var3.println(" " + var13 + " = " + var1.getParameter(var13));
  91.          }
  92.  
  93.          var3.println("</pre>");
  94.       }
  95.  
  96.       var9 = var1.getParameterNames();
  97.       if (var9.hasMoreElements()) {
  98.          var3.println("<h1>Servlet parameters (Multiple Value style):</h1>");
  99.          var3.println("<pre>");
  100.  
  101.          for(; var9.hasMoreElements(); var3.println("<p>")) {
  102.             String var14 = (String)var9.nextElement();
  103.             String[] var7 = var1.getParameterValues(var14);
  104.             if (var7 != null) {
  105.                var3.print("<b> " + var14 + " = </b>");
  106.                var3.println(var7[0]);
  107.  
  108.                for(int var8 = 1; var8 < var7.length; ++var8) {
  109.                   var3.println("           " + var7[var8]);
  110.                }
  111.             }
  112.          }
  113.  
  114.          var3.println("</pre>");
  115.       }
  116.  
  117.       String var15 = var2.getCharacterEncoding();
  118.       var3.println("<h1>Response Information:</h1>");
  119.       var3.println("<pre>");
  120.       var3.println("MIME character encoding: " + var15);
  121.       var3.println("</pre>");
  122.       var3.println("</body></html>");
  123.    }
  124.  
  125.    private void print(ServletOutputStream var1, String var2, String var3) throws IOException {
  126.       var1.print(" " + var2 + ": ");
  127.       var1.println(var3 == null ? "<none>" : var3);
  128.    }
  129.  
  130.    private void print(ServletOutputStream var1, String var2, int var3) throws IOException {
  131.       var1.print(" " + var2 + ": ");
  132.       if (var3 == -1) {
  133.          var1.println("<none>");
  134.       } else {
  135.          var1.println(var3);
  136.       }
  137.    }
  138.  
  139.    public String getServletInfo() {
  140.       return "A servlet that shows the request headers sent by the client";
  141.    }
  142. }
  143.