2014-09-24 32 views
0

我在我的動作類中有一個方法,在其中執行命令,並且我需要將該命令的輸出顯示在JSP頁面上。我該怎麼做,請告知。將動作類中的方法輸出顯示到JSP頁面中

下面是我在我的方法執行命令:

Process pr = rt.exec("java weblogic.Admin -url server_name:port_num -username user -password 
      passwd CLUSTERSTATE -clusterName clu"); 

上面的命令我想叫status.jsp JSP頁面來顯示的輸出,請幫我該怎麼做?

回答

0

從Java 1.5開始,javadoc說:從1.5開始,ProcessBuilder.start()是創建Process的首選方法。但它仍然是蠻好用的Runtime.exec() ...

首先必須收集命令的輸出...沒有忘記適當的字符集(例如String charset_name = "ISO-8859-1";IBM850或...):

Reader rd = new InputStreamReader(pr.getInputStream(), charset_name); 
StringBuilder sb = new StringBuilder(); 
char[] buffer = new char[1024]; 
int len; 
while ((len = rd.read(buffer)) != -1) { 
    for (int i=0; i<len; i++) { 
     sb.append(buffer[i]); 
    } 
} 

然後,如果您在servlet中運行命令(爲了便於測試,您應該這樣做),則只需將StringBuilder的內容放入請求屬性中,轉發到servlet並使用字符串:

request.setAttribute("CMD_OUTPUT", sb.toString()); 

如果您從JSP的命令和小腳本,根本就out.print(sb.toString());

編輯:

如果你運行上面的JSP外,並把結果在一個請求屬性如上圖所示,你可以訪問以JSP的方式,例如:

<jsp:useBean id="CMD_OUTPUT" scope="request" class="java.lang.String"/> 
<p>Result of command : ${CMD_OUTPUT}</p> 
+0

我在out.print語句中出現錯誤。無法解決錯誤。 – user1795999 2014-10-01 05:18:03

+0

@ user1795999請給出一些關於錯誤的背景信息,你試圖打印什麼,它來自哪裏,... – 2014-10-01 05:24:07

+0

@ user1795999:對不起,但是我沒辦法幫你,無論你使用scriptlet還是servlet (或堆棧跟蹤),... – 2014-10-01 07:31:59