实例介绍
【实例简介】
可以查看服务器上Request、Session、Cookie、Application的列表信息。
查看是否安装常见的JAVA类库。
查看服务器的内存使用情况。
查看服务器的JVM相关的所有信息(版本、时区、编码、操作系统名称等)。
【核心代码】
<%@ page contentType="text/html; charset=gb2312" %>
<%@page import="java.util.*"%>
<%@page import="java.awt.image.BufferedImage"%>
<%@page import="java.awt.*"%>
<%@page import="java.io.*"%>
<%
/*
程序作者:淘特网
程序出自:http://cms.tot.name
*/
long startTime = System.currentTimeMillis();
long startMem = Runtime.getRuntime().freeMemory();
%>
<%!
public class LibInfo {
boolean supportJNDI = false;
boolean supportJavaxSql = false;
boolean supportJAF = false;
boolean supportMail = false;
boolean supportBeanUtils = false;
boolean supportCommonLogging = false;
boolean supportCommonCodec = false;
boolean supportCommonCollection = false;
boolean supportCommonDigester = false;
boolean supportCommonLang = false;
boolean supportJakartaRegExp = false;
boolean supportLucene = false;
boolean supportDom4j = false;
boolean supportMmMysqlDriver = false;
boolean supportComMysqlDriver = false;
boolean supportImageProcessing = false;
public LibInfo() {
try {
Class.forName("javax.naming.Name");
supportJNDI = true;
} catch (ClassNotFoundException ex) {}
try {
Class.forName("javax.sql.DataSource");
supportJavaxSql = true;
} catch (ClassNotFoundException ex) {}
try {
Class.forName("javax.activation.DataSource");
supportJAF = true;
} catch (ClassNotFoundException ex) {}
try {
Class.forName("javax.mail.Message");
supportMail = true;
} catch (ClassNotFoundException ex) {}
try {
Class.forName("org.apache.commons.beanutils.MethodUtils");
supportBeanUtils = true;
} catch (ClassNotFoundException ex) {}
try {
Class.forName("org.apache.commons.logging.LogFactory");
supportCommonLogging = true;
} catch (ClassNotFoundException ex) {}
try {
Class.forName("org.apache.commons.codec.Decoder");
supportCommonCodec = true;
} catch (ClassNotFoundException ex) {}
try {
Class.forName("org.apache.commons.collections.ArrayStack");
supportCommonCollection = true;
} catch (ClassNotFoundException ex) {}
try {
Class.forName("org.apache.commons.digester.Digester");
supportCommonDigester = true;
} catch (ClassNotFoundException ex) {}
try {
Class.forName("org.apache.commons.lang.SystemUtils");
supportCommonLang = true;
} catch (ClassNotFoundException ex) {}
try {
Class.forName("org.apache.regexp.RE");
supportJakartaRegExp = true;
} catch (ClassNotFoundException ex) {}
try {
Class.forName("org.apache.lucene.index.IndexWriter");
supportLucene = true;
} catch (ClassNotFoundException ex) {}
try {
Class.forName("org.dom4j.Document");
supportDom4j = true;
} catch (ClassNotFoundException ex) {}
try {
Class.forName("org.gjt.mm.mysql.Driver");
supportMmMysqlDriver = true;
} catch (ClassNotFoundException ex) {}
try {
Class.forName("com.mysql.jdbc.Driver");
supportComMysqlDriver = true;
} catch (ClassNotFoundException ex) {}
try {
BufferedImage bufferedImage = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bufferedImage.createGraphics();
g.drawLine(0, 0, 10, 10);
g.dispose();// free resource
supportImageProcessing = true;
} catch (Throwable ex) {}
}
public boolean isSupportJAF() {
return supportJAF;
}
public boolean isSupportJavaxSql() {
return supportJavaxSql;
}
public boolean isSupportJNDI() {
return supportJNDI;
}
public boolean isSupportMail() {
return supportMail;
}
public boolean isSupportBeanUtils() {
return supportBeanUtils;
}
public boolean isSupportCommonLogging() {
return supportCommonLogging;
}
public boolean isSupportCommonCodec() {
return supportCommonCodec;
}
public boolean isSupportCommonCollection() {
return supportCommonCollection;
}
public boolean isSupportCommonDigester() {
return supportCommonDigester;
}
public boolean isSupportCommonLang() {
return supportCommonLang;
}
public boolean isSupportJakartaRegExp() {
return supportJakartaRegExp;
}
public boolean isSupportLucene() {
return supportLucene;
}
public boolean isSupportDom4j() {
return supportDom4j;
}
public boolean isSupportMmMysqlDriver() {
return supportMmMysqlDriver;
}
public boolean isSupportComMysqlDriver() {
return supportComMysqlDriver;
}
public boolean isSupportImageProcessing() {
return supportImageProcessing;
}
}
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>淘特JSP探针</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
.style1 {color: #FFFFFF; font-size:14px; font-weight:bold;}
.line20{line-height:20px;}
.table-header-text { color: #FFFFFF;
font-weight: normal;
margin: 3px 5px 1px 15px;
font-family: Arial, Verdana,Helvetica, Sans-Serif;
}
td{white-space:normal; word-break:break-all;}
-->
</style>
</head>
<body>
<table width="100%" height="25" border="0" cellpadding="0" cellspacing="0" bgcolor="#7171A5">
<tr>
<td><div align="center"><span class="style1">淘特JSP探针</span></div></td>
</tr>
</table>
<h3>Request Variables:</h3>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEE3ED" class="line20">
<tr>
<td width="50%" height="22" bgcolor="#9999CC"><span class="table-header-text">Property </span></td>
<td width="50%" height="22" bgcolor="#9999CC"><span class="table-header-text">Value</span></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getAuthType</td>
<td bgcolor="#FFFFFF"> <%=request.getAuthType()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getCharacterEncoding</td>
<td bgcolor="#FFFFFF"> <%=request.getCharacterEncoding()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getContentLength</td>
<td bgcolor="#FFFFFF"> <%=request.getContentLength()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getContentType</td>
<td bgcolor="#FFFFFF"> <%=request.getContentType()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getContextPath</td>
<td bgcolor="#FFFFFF"> <%=request.getContextPath()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getLocale</td>
<td bgcolor="#FFFFFF"> <%=request.getLocale()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getLocales</td>
<td bgcolor="#FFFFFF"> <%=request.getLocales()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getMethod</td>
<td bgcolor="#FFFFFF"> <%=request.getMethod()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getPathInfo</td>
<td bgcolor="#FFFFFF"> <%=request.getPathInfo()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getPathTranslated</td>
<td bgcolor="#FFFFFF"> <%=request.getPathTranslated()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getProtocol</td>
<td bgcolor="#FFFFFF"> <%=request.getProtocol()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getReader</td>
<td bgcolor="#FFFFFF"> <%=request.getReader()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getRealPath</td>
<td bgcolor="#FFFFFF"> <%=request.getRealPath(".")%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getRemoteAddr</td>
<td bgcolor="#FFFFFF"> <%=request.getRemoteAddr()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getRemoteHost</td>
<td bgcolor="#FFFFFF"> <%=request.getRemoteHost()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getRemoteUser</td>
<td bgcolor="#FFFFFF"> <%=request.getRemoteUser()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getRequestDispatcher</td>
<td bgcolor="#FFFFFF"> <%=request.getRequestDispatcher("/")%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getRequestURI</td>
<td bgcolor="#FFFFFF"> <%=request.getRequestURI()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getRequestURL</td>
<td bgcolor="#FFFFFF"> <%=request.getRequestURL()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getServerName</td>
<td bgcolor="#FFFFFF"> <%=request.getServerName()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getServerPort</td>
<td bgcolor="#FFFFFF"> <%=request.getServerPort()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getServletPath</td>
<td bgcolor="#FFFFFF"> <%=request.getServletPath()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF"> getUserPrincipal</td>
<td bgcolor="#FFFFFF"> <%=request.getUserPrincipal()%></td>
</tr>
</table>
<h3>Session Variables:</h3>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEE3ED" class="line20">
<tr>
<td width="50%" height="22" bgcolor="#9999CC"><span class="table-header-text">Property </span></td>
<td width="50%" height="22" bgcolor="#9999CC"><span class="table-header-text">Value</span></td>
</tr>
<%
Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = (String)session.getAttribute(name);
%>
<tr>
<td bgcolor="#FFFFFF"> <%=name%></td>
<td bgcolor="#FFFFFF"> <%=value%></td>
</tr>
<%
}
%>
</table>
<h3>Application Variables:</h3>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEE3ED" class="line20">
<tr>
<td width="50%" height="22" bgcolor="#9999CC"><span class="table-header-text">Property </span></td>
<td width="50%" height="22" bgcolor="#9999CC"><span class="table-header-text">Value</span></td>
</tr>
<%
e = application.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
%>
<tr>
<td bgcolor="#FFFFFF"> <%=name%></td>
<td bgcolor="#FFFFFF"> <%=application.getAttribute(name)%></td>
</tr>
<%
}
%>
</table>
<h3>Cookies Variables:</h3>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEE3ED" class="line20">
<tr>
<td width="50%" height="22" bgcolor="#9999CC"><span class="table-header-text">Property </span></td>
<td width="50%" height="22" bgcolor="#9999CC"><span class="table-header-text">Value</span></td>
</tr>
<%
Cookie[] cos=request.getCookies();
if(cos!=null){
for(int i=0;i<cos.length;i )
{
%>
<tr>
<td bgcolor="#FFFFFF"> <%=cos[i].getName()%></td>
<td bgcolor="#FFFFFF"> <%=cos[i].getValue()%></td>
</tr>
<%
}
}
%>
</table>
<h3>Server Variables:</h3>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEE3ED" class="line20">
<tr>
<td width="50%" height="22" bgcolor="#9999CC"><span class="table-header-text">Property </span></td>
<td width="50%" height="22" bgcolor="#9999CC"><span class="table-header-text">Value</span></td>
</tr>
<%
Properties props=System.getProperties();
Iterator iter=props.keySet().iterator();
while(iter.hasNext())
{
String key=(String)iter.next();
%>
<tr>
<td bgcolor="#FFFFFF"> <%=key%></td>
<td bgcolor="#FFFFFF"> <%=props.get(key)%></td>
</tr>
<%
}
%>
</table>
<h3>Lib Info</h3>
<%
LibInfo lib=new LibInfo();
%>
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#DEE3ED">
<tr>
<td height="25" bgcolor="#9999CC"><span class="table-header-text">Property </span></td>
<td bgcolor="#9999CC"><span class="table-header-text">Value</span></td>
</tr>
<tr>
<td width="476" bgcolor="#FFFFFF">supportJNDI</td>
<td width="484" bgcolor="#FFFFFF"> <%=lib.isSupportJNDI()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">supportJavaxSql</td>
<td bgcolor="#FFFFFF"> <%=lib.isSupportJavaxSql()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">supportJAF</td>
<td bgcolor="#FFFFFF"> <%=lib.isSupportJAF()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">supportMail</td>
<td bgcolor="#FFFFFF"> <%=lib.isSupportMail()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">supportBeanUtils</td>
<td bgcolor="#FFFFFF"> <%=lib.isSupportBeanUtils()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">supportCommonLogging</td>
<td bgcolor="#FFFFFF"> <%=lib.isSupportCommonLogging()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">supportCommonCodec</td>
<td bgcolor="#FFFFFF"> <%=lib.isSupportCommonCodec()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">supportCommonCollection</td>
<td bgcolor="#FFFFFF"> <%=lib.isSupportCommonCollection()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">supportCommonDigester</td>
<td bgcolor="#FFFFFF"> <%=lib.isSupportCommonDigester()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">supportCommonLang</td>
<td bgcolor="#FFFFFF"> <%=lib.isSupportCommonLang()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">supportJakartaRegExp</td>
<td bgcolor="#FFFFFF"> <%=lib.isSupportJakartaRegExp()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">supportLucene</td>
<td bgcolor="#FFFFFF"> <%=lib.isSupportLucene()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">supportDom4j</td>
<td bgcolor="#FFFFFF"> <%=lib.isSupportDom4j()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">supportMmMysqlDriver</td>
<td bgcolor="#FFFFFF"> <%=lib.isSupportMmMysqlDriver()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">supportComMysqlDriver</td>
<td bgcolor="#FFFFFF"> <%=lib.isSupportComMysqlDriver()%></td>
</tr>
<tr>
<td bgcolor="#FFFFFF">supportImageProcessing</td>
<td bgcolor="#FFFFFF"> <%=lib.isSupportImageProcessing()%></td>
</tr>
</table>
<p><br>
</p>
</body>
</html>
<%
long endMem = Runtime.getRuntime().freeMemory();
long total= Runtime.getRuntime().maxMemory();
out.println("Total Memory:" total);
out.println("Start Memory:" startMem);
out.println("End Memory:" endMem);
out.println("Use memory: " (startMem - endMem));
long endTime = System.currentTimeMillis();
out.println("Use Time: " (endTime-startTime));
%>
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论