您好我还有问题,我无法在jsp页面中显示任何数据,正如您在代码中看到的那样我将java类导入到jsp中并创建了该类的对象并调用了输出方法java类,但似乎有些不对。请帮忙。 (请解释一下你的建议,因为有些提示难以理解 - 谢谢)
package mydata;
import org.hyperic.sigar.CpuInfo;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
public class test {
public test() {
Sigar sigar = new Sigar();
String output = " ";
CpuInfo[] cpuInfoList = null;
try {
cpuInfoList = sigar.getCpuInfoList();
} catch (SigarException e) {
e.printStackTrace();
return;
}
for (CpuInfo info : cpuInfoList) {
output += "\nCPU\n";
output += "Vendor: " + info.getVendor() + "\n";
output += "Clock: " + info.getMhz() + "Mhz\n";
output += "Core: " + info.getCoresPerSocket();
}
System.out.println(output);
}
public static void main(String[] args) {
test main = new test();
}
}
//JSP Code
<%@page import="mydata.test"%>
<%@page import="org.hyperic.sigar.Sigar"%>
<%@page import="org.hyperic.sigar.CpuInfo"%>
<%@page import="org.hyperic.sigar.SigarException"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Welcome to data page</h1>
<%@ page import="mydata.test.*"%>
<%
String output="";
CpuInfo[] cpuInfoList = null;
test ts = new test();
Sigar sigar = new Sigar();
out.println(output);
out.println(sigar.getCpuInfoList());
%>
</body>
</html>
答案 0 :(得分:1)
您需要在类范围内声明输出变量,并添加一个getter方法来返回它
然后,在调用测试类的构造函数之后,使用getter方法检索输出字符串。
例如:
// Java
public class test {
private String output;
public String getOutput() {
return this.output;
}
// JSP
<%
test ts = new test();
out.println(ts.getOutput());
%>
答案 1 :(得分:0)
servlet中用于输出内容的输出流与标准输出流不同(out!= System.out)。
有两种方法可以解决您的问题:
将输出流对象传递给类中的测试方法:
test(OutputStream out) {
...
out.println(output);
}
从测试方法返回输出:
StringBuilder buffer = new StringBuilder();
for (...) {
buffer.append(...);
}
return buffer.toString();
我建议使用StringBuilder而不是连接String对象,因为这会显着影响性能。