2、通过反编译,查看Codesource此类的包名,然后再jsp中import
3、在jsp页面用java.lang.ProcessBuilder去启动Codesource进程,获取输出流。打印到jsp页面上
类似代码:
ProcessBuilder pb = new ProcessBuilder( startupCommands )
//开启错误信息的流到标准输出流,在某种情况下由于错误输出流中的数据没有被读取,进程就不会结束
pb.redirectErrorStream( true )
Process process = pb.start()
OutputStream os = process.getOutputStream()
jsp打印os中内容
在这里相当于用到java中的进程交互,jsp运行在一个java进程中, java Codesource运行在另一个java进程中。第一个进程通过ProcessBuilder来启动第二个进程,并获取第二个进程的输出流来取得内容
$sql = 'SELECT COUNT( * ) FROM DAY WHERE id_u =1'$resault = $db->getAll($sql)
//
function getAll($sql)
{
$res = $this->query($sql)
if ($res !== false)
{
$arr = array()
while ($row = mysql_fetch_assoc($res))
{
$arr[] = $row
}
return $arr
}
else
{
return false
}
}
//
function query($sql, $type = '')
{
if ($this->link_id === NULL)
{
$this->connect($this->settings['dbhost'], $this->settings['dbuser'], $this->settings['dbpw'], $this->settings['dbname'], $this->settings['charset'], $this->settings['pconnect'])
$this->settings = array()
}
if ($this->queryCount++ <= 99)
{
$this->queryLog[] = $sql
}
if ($this->queryTime == '')
{
if (PHP_VERSION >= '5.0.0')
{
$this->queryTime = microtime(true)
}
else
{
$this->queryTime = microtime()
}
}
/* 当当前的时间大于类初始化时间的时候,自动执行 ping 这个自动重新连接 *** 作 */
if (PHP_VERSION >= '4.3' &&time() >$this->starttime + 1)
{
mysql_ping($this->link_id)
}
if (!($query = mysql_query($sql, $this->link_id)) &&$type != 'SILENT')
{
$this->error_message[]['message'] = 'MySQL Query Error'
$this->error_message[]['sql'] = $sql
$this->error_message[]['error'] = mysql_error($this->link_id)
$this->error_message[]['errno'] = mysql_errno($this->link_id)
$this->ErrorMsg()
return false
}
if (defined('DEBUG_MODE') &&(DEBUG_MODE &8) == 8)
{
$logfilename = $this->root_path . DATA_DIR . '/mysql_query_' . $this->dbhash . '_' . date('Y_m_d') . '.log'
$str = $sql . "\n\n"
if (PHP_VERSION >= '5.0')
{
file_put_contents($logfilename, $str, FILE_APPEND)
}
else
{
$fp = @fopen($logfilename, 'ab+')
if ($fp)
{
fwrite($fp, $str)
fclose($fp)
}
}
}
return $query
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)