关于Java的ClassLoader的检测(checkClassLoader.jsp)

<%@ page language="java" contentType="text/html; charset=GBK" %>

<%@ page import="java.net.URL"%>

<%@ page import="java.net.URLClassLoader"%>

<%@ page import="java.util.Enumeration"%>

<!-- define function in jsp by can_do -->

<%!

private static String getPackageName(Object obj) {

return getPackageName(obj.getClass());

}

private static String getPackageName(Class clazz) {

Package pack = clazz.getPackage();

if (pack != null) {

return pack.getName();

}

return null;

}

%>





<html>

<head>

<title>retrieve class loader information</title>

<meta name="Generator" content="EditPlus">

<meta name="Author" content="">

<meta name="Keywords" content="">

<meta name="Description" content="">

</head>



<body>



<form name="uploadform" action="./checkClassLoader.jsp" method="post">

<%

String strClassFullPath=request.getParameter("className");



strClassFullPath=strClassFullPath==null?"":strClassFullPath;

%>

<input type="text" name="className" size="100" value="<%=strClassFullPath%>" /><br>

<%

String strClassLoadedNotFoundClassLoaderContent = "The specified class has been loaded,but not find its class loader,try other retrieving class loader method.";

String strClassLoadedNotFoundClassLoader="<font color='red' size='5'>"+strClassLoadedNotFoundClassLoaderContent+"</font><br>";

String strClassNotFoundContent="The specified class has NOT been loaded.please check whether it is existing or not. Maybe you misspell the class package or name.";

String strClassNotFound="<font color='red' size='5'>"+strClassNotFoundContent+"</font><br>";



Boolean isClassNotFound = false;

if (strClassFullPath==null ||strClassFullPath.trim().length()==0) {

out.println("please input your reviewed class full name.<br>");

}else{

Class specifiedClass = null;

ClassLoader strClassLoaderName = null;

URL oUrl = null;

URL url = null;

try {

specifiedClass = Class.forName(strClassFullPath);

} catch (NullPointerException e) {

//e.printStackTrace();

System.err.println(strClassLoadedNotFoundClassLoaderContent);

} catch (ClassNotFoundException e) {

System.err.println(strClassNotFoundContent);

isClassNotFound = true;

}



if (!isClassNotFound) {

strClassLoaderName = specifiedClass.getClassLoader();





String className = specifiedClass.getName();



String fileName = String.valueOf(String.valueOf(className.substring(className.lastIndexOf('.') + 1))).concat(".class");

int packLength = getPackageName(specifiedClass).length() + 8;

url = specifiedClass.getResource(fileName);

}



if (strClassLoaderName != null) {

oUrl = strClassLoaderName.getSystemResource(strClassFullPath);



/begin//retrieve class's signature information //

Object signer = specifiedClass.getSigners();



String strSignature = "";

if (signer != null) {

strSignature = signer.toString();

}



out.println("=strSignature is:=" + strSignature + "=end=<br>");

/end//retrieve class's signature information //





///begin//







///end//





Enumeration en = request==null?null:request.getHeaderNames();

while(en!=null&&en.hasMoreElements()){

String value = ""+en.nextElement();

System.out.println("key="+value+":value="+request.getHeader(value));

}

//out.println("=oUrl is:="+(oUrl==null?null:oUrl.toString())+"=end=<br>");

} else {

out.println((isClassNotFound?strClassNotFound:strClassLoadedNotFoundClassLoader));

}



out.println("=System ClassLoader(AppClassloader) is:="+ClassLoader.getSystemClassLoader()+"=end=<br>");

out.println("=AppClassLoader's parent(ExtClassLoader is the topest class loader) is:="+ClassLoader.getSystemClassLoader().getParent()+"=end=<br>");

out.println("=ExtClassLoader's parent is:="+ClassLoader.getSystemClassLoader().getParent().getParent()+"=end=<br>");

out.println("=strClassFullPath is:="+strClassFullPath+"=end=<br>");

out.println("=strClassLoaderName is:="+(strClassLoaderName== null?"":strClassLoaderName.toString())+"=end=<br>");

out.println("=current class's location is:="+(url==null?"":url.toString())+"=end=<br>");



}

%>



<%

String strUserDir = System.getProperty("user.dir");

String strApusicHome = System.getProperty("com.apusic.home");

String strApusicDomainHome = System.getProperty("com.apusic.domain.home");

out.println("=strUserDir[user.dir] is:="+strUserDir+"=end=<br>");

out.println("=strApusicHome[com.apusic.home] is:="+strApusicHome+"=end=<br>");

out.println("=strApusicDomainHome[com.apusic.domain.home] is:="+strApusicDomainHome+"=end=<br>");



//session share test

HttpSession tempSession = request.getSession();

tempSession.setAttribute("classPackage", strClassFullPath);



boolean isShareContext=true;

if (isShareContext) {

System.out.println("do nothing!");

} else {

request.getSession().getServletContext().setAttribute("defaultApp", tempSession);

}





%>

<input type="submit" name="btSubmit" value="submit">

<p>

for example:

<table>

<tr>

<td>

(1).org.apache.taglibs.i18n.BundleTEI[from WEB-INF/lib]

</td>

<tr>

<td>

(2).com.apusic.welcome.util.MiscUtils[from WEB-INF/classes]

</td>

</tr>

<tr>

<td>

(3).com.apusic.server.Main[from <Apusic_Home>/lib/apusic.jar]

</td>

</tr>

<tr>

<td>

(4).com.apusic.tools.script.shell.Main[from <Apusic_Home>/common/elite-api.jar]

</td>

</tr>

<tr>

<td>

(5).sun.misc.Timer[from <Java_Home>/jre/lib/rt.jar]

</td>

</tr>

</p>

</form>

</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值