⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 snoopservlet.java

📁 java的一系列产品中包括jsme,jmse,j2ee,本文件提供j2ee实现的源代码.
💻 JAVA
字号:
package examples.servlets;
/*
 * @(#)SnoopServlet.java	1.20 97/11/17
 * 
 * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
 * 
 * This software is the confidential and proprietary information of Sun
 * Microsystems, Inc. ("Confidential Information").  You shall not
 * disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into
 * with Sun.
 * 
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
 * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
 * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
 * THIS SOFTWARE OR ITS DERIVATIVES.
 * 
 * CopyrightVersion 1.0
 */

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

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

import examples.utils.common.ExampleUtils;


/**
 *
 * This servlet demonstrates getting and using the request
 * information, headers, and parameters sent by the browser.
 * 
 *
 * <p><h3>Build the Example</h3>  
 * <ol>
 * <li> Open a new command shell. 
 * <p><li>Set up this development shell as described in 
 * <a href=../examples.html#environment>Setting up Your Environment for 
 * Building and Running the Examples</a>.
 * <p>
 * <li>Build the servlet using ant:
 * <pre>  prompt&gt;<b> ant SnoopServlet</b></pre>
 * 
 * 
 * <p> <li>Start WebLogic Server with the <a
 * href=../examples.html>examples configuration</a>.  <p> 
 *
 * </ol>
 * <p><h3>Configure the Server</h3>
 * <dl>
 * <dd>Make sure that the <font face="Courier New"
 * size=-1>examplesWebApp</font> is <a
 * href=../examples.html#webApp>deployed on your server</a>.
 * </dl>
 * <p><h3>Run the Example</h3>
 * <ol>
 * <li>Use a web browser to load the following URL: 
 * 
 * <pre><b>http://localhost:7001/examplesWebApp/SnoopServlet</b></pre>
 *
 * <p><li>If you add some request parameters to the URL the servlet
 * will read those parameters form the request and display them in the
 * output. For example:
 *
 * <pre><b>http://localhost:7001/examplesWebApp/SnoopServlet?testParam=somevalue</b></pre>
 *
 * </ol>
 * <h3>There's More...</h3>
 *
 * For more information on servlets, see  <a
 * href="http://e-docs.bea.com/wls/docs70/servlet/index.html">Programming WebLogic HTTP Servlets</a>. 
 * <p>
 * @author Copyright (c) 1996-98 by WebLogic, Inc. All Rights Reserved.
 * @author Copyright (c) 1999-2002 by BEA Systems, Inc. All Rights Reserved.  */


public class SnoopServlet extends HttpServlet {
  
  public void service(HttpServletRequest req, HttpServletResponse res)
       throws ServletException, IOException
  {
    res.setContentType("text/html");
    PrintWriter	out = res.getWriter();
    
    out.println(ExampleUtils.returnHtmlHeader("Snoop Servlet"));
    out.println("<h4>Requested URL:</h4>");
    out.println("<pre>");
    out.println(req.getRequestURL());
    out.println("</pre>");
    
    Enumeration enum = getServletConfig().getInitParameterNames();
    if (enum != null) {
      boolean first = true;
      while (enum.hasMoreElements()) {
        if (first) {
          out.println("<h1>Init Parameters</h1>");
          out.println("<pre>");
          first = false;
        }
        String param = (String) enum.nextElement();
        out.println(" "+param+": "+getInitParameter(param));
      }
      out.println("</pre>");
    }
    
    out.println("<h1>Request information:</h1>");
    out.println("<pre>");
    
    print(out, "Request method", req.getMethod());
    print(out, "Request URI", req.getRequestURI());
    print(out, "Request protocol", req.getProtocol());
    print(out, "Servlet path",     req.getServletPath());
    print(out, "Path info",        req.getPathInfo());
    print(out, "Path translated",  req.getPathTranslated());
    // Replace "&" with "&amp;" with raw html output
    String qs = req.getQueryString();
    String nqs = new String();

    if (qs != null) {
      for (int i=0; i< qs.length(); i++) {
	  if (qs.charAt(i) == '&'){
	      nqs = nqs + "&amp;";
	  }
	  else {
	      nqs = nqs + qs.charAt(i);
  	  }
      }
    }

    print(out, "Query string",     nqs);
    print(out, "Content length",   req.getContentLength());
    print(out, "Content type",     req.getContentType());
    print(out, "Server name",      req.getServerName());
    print(out, "Server port",      req.getServerPort());
    print(out, "Remote user",      req.getRemoteUser());
    print(out, "Remote address",   req.getRemoteAddr());
    print(out, "Remote host",      req.getRemoteHost());
    print(out, "Scheme",           req.getScheme());
    print(out, "Authorization scheme", req.getAuthType());
    print(out, "Request scheme", req.getScheme());
    out.println("</pre>");

    out.println("<h1>Certificate Information</h1>");
    try {
	out.println("javax.servlet.request.X509Certificate");
        out.println("<pre>");
        java.security.cert.X509Certificate certs [] = (java.security.cert.X509Certificate [])
          req.getAttribute("javax.servlet.request.X509Certificate");
        if ((certs != null) && (certs.length > 0) ){
          print(out, "Subject Name", certs[0].getSubjectDN().getName() );
          print(out, "Issuer Name", certs[0].getIssuerDN().getName() );
          print(out, "Certificate Chain Length", certs.length);
          for (int i=0; i<certs.length; i++) {
            print(out,"Certificate["+i+"] Subject", certs[i].getSubjectDN().getName());
            print(out,"Certificate["+i+"] Issuer", certs[i].getIssuerDN().getName());
          }
        
        Integer keysize = (Integer) req.getAttribute("javax.servlet.request.key-size");
        if (keysize != null)
          print(out, "Key Size", keysize.toString());
        else
          print(out, "Key Size", "none found");
        String suite = (String) req.getAttribute("javax.servlet.request.cipher-suite");
        if (suite != null)
          print(out, "CipherSuite", suite.toString());
        else
          print(out, "CipherSuite", "none found");
        out.println("</pre>");

      } else {
	out.println("Not using SSL or client certificate not required for this connection.");
      }

      javax.net.ssl.SSLSession sslSession = (javax.net.ssl.SSLSession)req.getAttribute("weblogic.servlet.request.sslsession");
      if (sslSession != null) {
	print(out, "weblogic.servlet.request.sslsession (Cipher):           ", sslSession.getCipherSuite());
	print(out, "weblogic.servlet.request.sslsession (creation time):    ", java.lang.Long.toString(sslSession.getCreationTime()));
	print(out, "weblogic.servlet.request.sslsession (Id):               ", sslSession.getId().toString());
	print(out, "weblogic.servlet.request.sslsession (last access time): ", java.lang.Long.toString(sslSession.getLastAccessedTime()));
	print(out, "weblogic.servlet.request.sslsession (peer host):        ", sslSession.getPeerHost());
	print(out, "weblogic.servlet.request.sslsession (peer cert chain):  ", " ");
	javax.security.cert.X509Certificate [] peercerts = (javax.security.cert.X509Certificate [])sslSession.getPeerCertificateChain();
	if ((peercerts != null) && (peercerts.length > 0)) {
	    for (int m=0; m<peercerts.length;m++)
		print(out,"Certificate["+m+"]",peercerts[m].toString());
	} else {
	    out.println("SSLSession certs: Not using SSL or client certificate not required in weblogic.properties.");
	}     
	print(out, "weblogic.servlet.request.sslsession (SSLSessionContext): ", sslSession.getSessionContext().toString());
      }
	
    }catch (ClassCastException cce){System.out.println(cce.getMessage());cce.printStackTrace();}
    out.println("</pre>");

    Enumeration e = req.getHeaderNames();
    if (e.hasMoreElements()) {
      out.println("<h1>Request headers:</h1>");
      out.println("<pre>");
      while (e.hasMoreElements()) {
        String name = (String)e.nextElement();
        out.println(" " + name + ": " + req.getHeader(name));
      }
      out.println("</pre>");
    }
    
    e = req.getParameterNames();
    if (e.hasMoreElements()) {
      out.println("<h1>Servlet parameters (Single Value style):</h1>");
      out.println("<pre>");
      while (e.hasMoreElements()) {
        String name = (String)e.nextElement();
        out.println(" " + name + " = " + req.getParameter(name));
      }
      out.println("</pre>");
    }
    
    e = req.getParameterNames();
    if (e.hasMoreElements()) {
      out.println("<h1>Servlet parameters (Multiple Value style):</h1>");
      out.println("<pre>");
      while (e.hasMoreElements()) {
        String name = (String)e.nextElement();
        String vals[] = (String []) req.getParameterValues(name);
        if (vals != null) {
          out.print("<b> " + name + " = </b>"); 
          out.println(vals[0]);
          for (int i = 1; i<vals.length; i++)
            out.println("           " + vals[i]);
        }
        out.println("<p>");
      }
      out.println("</pre>");
    }

    out.println("<h1>Request Attributes:</h1>");
    e = req.getAttributeNames();
    if (e.hasMoreElements()) {
      out.println("<pre>");
      while (e.hasMoreElements()) {
        String name = (String)e.nextElement();
	Object o = req.getAttribute(name);
	if (o == null) continue;
        out.println(" " + name + ": type=" + o.getClass().getName() + " str='" + o.toString() + "'");
      }
      out.println("</pre>");
    }
    out.println(ExampleUtils.returnHtmlFooter());
  }
  
  private void print (PrintWriter out, String name, String value)
  {
    out.print(" " + name + ": ");
    out.println(value == null ? "&lt;none&gt;" : value);
  }
  
  private void print (PrintWriter out, String name, int value)
  {
    out.print(" " + name + ": ");
    if (value == -1) {
      out.println("&lt;none&gt;");
    } else {
      out.println(value);
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -