java外部生成的class文件,我需要用JSP调用它来在网页上面显示输出结果

java外部生成的class文件,我需要用JSP调用它来在网页上面显示输出结果,第1张

1、先把class文件放到web工程中。

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8049461.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存