将action类中的方法输出显示到JSP页面中

时间:2014-09-24 12:17:35

标签: java jsp

我的动作类中有一个方法,我执行命令,我需要将该命令的输出显示在 JSP页面上。请问我该怎么做。

以下是我在方法中执行的命令:

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

上面命令的输出我想在名为status.jsp的JSP页面中显示,请帮我怎么做?

1 个答案:

答案 0 :(得分: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());

如果使用scriptlet从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>