__fingerprint.java

来自「《J2EE企业级应用开发》一书的配套源代码」· Java 代码 · 共 353 行 · 第 1/2 页

JAVA
353
字号
/* compiled from JSP: /fingerprint.jsp
*
* This code was automatically generated at 23:38:12 on 2001-4-14
* by weblogic.servlet.jsp.Jsp2Java -- do not edit.
*/

package jsp_servlet;

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

// User imports
import java.io.File; //[ /fingerprint.jsp; Line: 4]import java.io.IOException; //[ /fingerprint.jsp; Line: 4]import java.util.Date; //[ /fingerprint.jsp; Line: 4]

// built-in init parameters:
// boolean             _verbose -- wants debugging

// Well-known variables:
// JspWriter out                  -- to write to the browser
// HttpServletRequest  request    -- the request object.
// HttpServletResponse response   -- the response object.
// PageContext pageContext        -- the page context for this JSP
// HttpSession session            -- the session object for the client (if any)
// ServletContext application     -- The servlet (application) context
// ServletConfig config           -- The ServletConfig for this JSP
// Object page                    -- the instance of this page's implementation class (i.e., 'this')

/**
* This code was automatically generated at 23:38:12 on 2001-4-14
* by weblogic.servlet.jsp.Jsp2Java -- do not edit.
*
* Copyright (c) 2001 by BEA Systems, Inc. All Rights Reserved.
*/
public final class __fingerprint
extends
weblogic.servlet.jsp.JspBase
implements weblogic.servlet.jsp.StaleIndicator
{
    
    //[ /fingerprint.jsp; Line: 10]    //[ /fingerprint.jsp; Line: 11]    /* //[ /fingerprint.jsp; Line: 12]    * Fingerprint the users system. This is mainly for use in //[ /fingerprint.jsp; Line: 13]    * diagnosing classpath problems. It is intended to dump out //[ /fingerprint.jsp; Line: 14]    * a copy of the environment this webapp is running in, //[ /fingerprint.jsp; Line: 15]    * and additionally attempt to identify versions of each jar //[ /fingerprint.jsp; Line: 16]    * in the classpath. //[ /fingerprint.jsp; Line: 17]    * //[ /fingerprint.jsp; Line: 18]    * @author Brian Ewins //[ /fingerprint.jsp; Line: 19]    */ //[ /fingerprint.jsp; Line: 20]    //[ /fingerprint.jsp; Line: 21]    private java.util.Properties versionProps=new java.util.Properties(); //[ /fingerprint.jsp; Line: 22]    //[ /fingerprint.jsp; Line: 23]    /** //[ /fingerprint.jsp; Line: 24]    * Identify the version of a jar file. This uses a properties file //[ /fingerprint.jsp; Line: 25]    * containing known names and sizes in the format //[ /fingerprint.jsp; Line: 26]    * 'name(size)=version'. Version strings should be like 'xerces-1.4' //[ /fingerprint.jsp; Line: 27]    * ie they should include the name of the library. //[ /fingerprint.jsp; Line: 28]    */ //[ /fingerprint.jsp; Line: 29]    public String getFileVersion(File file) throws IOException { //[ /fingerprint.jsp; Line: 30]        String key="<td>"+file.getName()+"</td>"; //[ /fingerprint.jsp; Line: 31]        key+= "<td>"+file.length()+"</td>"; //[ /fingerprint.jsp; Line: 32]        Date timestamp=new Date(file.lastModified()); //[ /fingerprint.jsp; Line: 33]        key+= "<td>"+timestamp.toString()+"</td>"; //[ /fingerprint.jsp; Line: 34]        return key; //[ /fingerprint.jsp; Line: 35]        //[ /fingerprint.jsp; Line: 36]        /* TODO: implement //[ /fingerprint.jsp; Line: 37]        String value=versionProps.getProperty(key); //[ /fingerprint.jsp; Line: 38]        if (value==null) { //[ /fingerprint.jsp; Line: 39]            // make it possible to have jars without version nos //[ /fingerprint.jsp; Line: 40]            value=versionProps.getProperty(file.getName()); //[ /fingerprint.jsp; Line: 41]        } //[ /fingerprint.jsp; Line: 42]        if (value==null) { //[ /fingerprint.jsp; Line: 43]            // fall back on something obvious //[ /fingerprint.jsp; Line: 44]            value=key; //[ /fingerprint.jsp; Line: 45]            Date timestamp=new Date(file.lastModified()); //[ /fingerprint.jsp; Line: 46]            value+=" / "+timestamp.toString(); //[ /fingerprint.jsp; Line: 47]        } //[ /fingerprint.jsp; Line: 48]        return value; //[ /fingerprint.jsp; Line: 49]        */ //[ /fingerprint.jsp; Line: 50]    } //[ /fingerprint.jsp; Line: 51]    //[ /fingerprint.jsp; Line: 52]    /** //[ /fingerprint.jsp; Line: 53]    * Split up a classpath-like variable. Returns a list of files. //[ /fingerprint.jsp; Line: 54]    * TODO: this can't cope with relative paths. I think theres code in BCEL that //[ /fingerprint.jsp; Line: 55]    * can be used for this? //[ /fingerprint.jsp; Line: 56]    */ //[ /fingerprint.jsp; Line: 57]    File[] splitClasspath(String path) throws IOException { //[ /fingerprint.jsp; Line: 58]        java.util.StringTokenizer st= //[ /fingerprint.jsp; Line: 59]        new java.util.StringTokenizer(path, //[ /fingerprint.jsp; Line: 60]        System.getProperty("path.separator")); //[ /fingerprint.jsp; Line: 61]        int toks=st.countTokens(); //[ /fingerprint.jsp; Line: 62]        File[] files=new File[toks]; //[ /fingerprint.jsp; Line: 63]        for(int i=0;i<toks;i++) { //[ /fingerprint.jsp; Line: 64]            files[i]=new File(st.nextToken()); //[ /fingerprint.jsp; Line: 65]        } //[ /fingerprint.jsp; Line: 66]        return files; //[ /fingerprint.jsp; Line: 67]    } //[ /fingerprint.jsp; Line: 68]    //[ /fingerprint.jsp; Line: 69]    /** given a list of files, return a list of jars which actually exist */ //[ /fingerprint.jsp; Line: 70]    File[] scanFiles(File[] files) throws IOException { //[ /fingerprint.jsp; Line: 71]        File[] jars=new File[files.length]; //[ /fingerprint.jsp; Line: 72]        int found=0; //[ /fingerprint.jsp; Line: 73]        for (int i=0; i<files.length; i++) { //[ /fingerprint.jsp; Line: 74]            if (files[i].getName().toLowerCase().endsWith(".jar") //[ /fingerprint.jsp; Line: 75]            && files[i].exists()) { //[ /fingerprint.jsp; Line: 76]                jars[found]=files[i]; //[ /fingerprint.jsp; Line: 77]                found++; //[ /fingerprint.jsp; Line: 78]            } //[ /fingerprint.jsp; Line: 79]        } //[ /fingerprint.jsp; Line: 80]        if (found<files.length) { //[ /fingerprint.jsp; Line: 81]            File[] temp=new File[found]; //[ /fingerprint.jsp; Line: 82]            System.arraycopy(jars,0,temp,0,found); //[ /fingerprint.jsp; Line: 83]            jars=temp; //[ /fingerprint.jsp; Line: 84]        } //[ /fingerprint.jsp; Line: 85]        return jars; //[ /fingerprint.jsp; Line: 86]    } //[ /fingerprint.jsp; Line: 87]    //[ /fingerprint.jsp; Line: 88]    private static final File[] NO_FILES=new File[0]; //[ /fingerprint.jsp; Line: 89]    //[ /fingerprint.jsp; Line: 90]    /** scan a directory for jars */ //[ /fingerprint.jsp; Line: 91]    public File[] scanDir(String dir) throws IOException //[ /fingerprint.jsp; Line: 92]    { //[ /fingerprint.jsp; Line: 93]        return scanDir(new File(dir)); //[ /fingerprint.jsp; Line: 94]    } //[ /fingerprint.jsp; Line: 95]    //[ /fingerprint.jsp; Line: 96]    public File[] scanDir(File dir) throws IOException { //[ /fingerprint.jsp; Line: 97]        if (!dir.exists() || !dir.isDirectory()) { //[ /fingerprint.jsp; Line: 98]            return NO_FILES; //[ /fingerprint.jsp; Line: 99]        } //[ /fingerprint.jsp; Line: 100]        return scanFiles(dir.listFiles()); //[ /fingerprint.jsp; Line: 101]    } //[ /fingerprint.jsp; Line: 102]    //[ /fingerprint.jsp; Line: 103]    /** scan a classpath for jars */ //[ /fingerprint.jsp; Line: 104]    public File[] scanClasspath(String path) throws IOException { //[ /fingerprint.jsp; Line: 105]        if (path==null) { //[ /fingerprint.jsp; Line: 106]            return NO_FILES; //[ /fingerprint.jsp; Line: 107]        } //[ /fingerprint.jsp; Line: 108]        return scanFiles(splitClasspath(path)); //[ /fingerprint.jsp; Line: 109]    } //[ /fingerprint.jsp; Line: 110]    //[ /fingerprint.jsp; Line: 111]    /** //[ /fingerprint.jsp; Line: 112]    * scan a 'dirpath' (like the java.ext.dirs system property) for jars //[ /fingerprint.jsp; Line: 113]    */ //[ /fingerprint.jsp; Line: 114]    public File[] scanDirpath(String path) throws IOException { //[ /fingerprint.jsp; Line: 115]        if (path==null) { //[ /fingerprint.jsp; Line: 116]            return NO_FILES; //[ /fingerprint.jsp; Line: 117]        } //[ /fingerprint.jsp; Line: 118]        File[] current=new File[0]; //[ /fingerprint.jsp; Line: 119]        File[] dirs=splitClasspath(path); //[ /fingerprint.jsp; Line: 120]        for(int i=0; i<dirs.length; i++) { //[ /fingerprint.jsp; Line: 121]            File[] jars=scanDir(dirs[i]); //[ /fingerprint.jsp; Line: 122]            File[] temp=new File[current.length+jars.length]; //[ /fingerprint.jsp; Line: 123]            System.arraycopy(current,0,temp,0,current.length); //[ /fingerprint.jsp; Line: 124]            System.arraycopy(jars,0,temp,current.length,jars.length); //[ /fingerprint.jsp; Line: 125]            current=temp; //[ /fingerprint.jsp; Line: 126]        } //[ /fingerprint.jsp; Line: 127]        return scanFiles(current); //[ /fingerprint.jsp; Line: 128]    } //[ /fingerprint.jsp; Line: 129]    //[ /fingerprint.jsp; Line: 130]    /** print out the jar versions for a directory */ //[ /fingerprint.jsp; Line: 131]    public void listDirectory(String title, JspWriter out,String dir, String comment) throws IOException { //[ /fingerprint.jsp; Line: 132]        listVersions(title, out,scanDir(dir), comment); //[ /fingerprint.jsp; Line: 133]    } //[ /fingerprint.jsp; Line: 134]    //[ /fingerprint.jsp; Line: 135]    /** print out the jar versions for a directory-like system property */ //[ /fingerprint.jsp; Line: 136]    public void listDirProperty(String title, JspWriter out,String key, String comment) throws IOException { //[ /fingerprint.jsp; Line: 137]        listVersions(title, out,scanDir(System.getProperty(key)), comment); //[ /fingerprint.jsp; Line: 138]    } //[ /fingerprint.jsp; Line: 139]    //[ /fingerprint.jsp; Line: 140]

⌨️ 快捷键说明

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