2015-05-04 2 views
0

Здравствуйте, у меня все еще есть проблема, я не могу отображать данные на странице jsp, как вы можете видеть в коде, я импортировал java-класс в jsp и создал объект класса и называется методом вывода из класса java, но кажется, что-то не так. Помогите пожалуйста. (Пожалуйста, объясните ваши советы, потому что некоторые намеки труднее понять - спасибо)Показать Java-класс на веб-странице jsp

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

А где Sigar-класс с методом sigar.getCpuInfoList()? Вы печатаете: out.println (выход); который есть "", а затем out.println (sigar.getCpuInfoList()); –

+1

Не используйте Java-код на странице JSP. Вместо этого используйте JSTL. – OO7

+0

что случилось? Любое исключение/ошибка? – SMA

ответ

1

Вы должны объявить переменный вывод в области видимости класса и добавить метод геттера, чтобы вернуть его.
Затем, после вызова конструктора тестового класса, используйте метод getter для извлечения выходной строки. Например:

// Java 
public class test { 
    private String output; 
    public String getOutput() { 
     return this.output; 
    } 

// JSP 
<% 
    test ts = new test(); 
    out.println(ts.getOutput()); 
%> 
0

Выходной поток, используемый в сервлет, для вывода контента отличается от стандартного выходного потока (! = Из System.out).

Есть два способа решить проблему:

  1. передать выходной объект потока к вашему методу испытаний в классе:

    test(OutputStream out) { 
        ... 
        out.println(output); 
    } 
    
  2. Return свой выход из метода испытаний:

    StringBuilder buffer = new StringBuilder(); 
    for (...) { 
        buffer.append(...); 
    } 
    return buffer.toString(); 
    

Я предлагаю использовать StringBuilder вместо конкатенации объектов String, поскольку это может существенно повлиять на производительность.

+0

Спасибо Regulus за вашу помощь Я устал от вашего уведомления, но также кажется, что ничего не вышло (данные вышли)? Я пробую все уведомления и помощь в течение 2 недель без результата? если я запустил код, поскольку приложение java работает нормально, НО я не могу вытащить какие-либо данные на какую-либо веб-страницу, и это то, что я ищу, но, к сожалению, пока нет способа – Sadigain

Смежные вопросы