Executing Unix Commands in a JSP and Displaying The Output in the Browser

Here is a JSP that executes a series of Unix commands, and displays the results in the Browser. It opens two InputStreams, one for regular output, and the other for error output. A regular output line is prefaced by "Out", and the error output is prefaced by "Error": If you want the output to go to the out.log, say System.out.println() instead of out.println(), and include an out.println("commands executed, output send to out.log);

<%@ page import="java.io.*" %>
<pre>
<%
  try
  {
    Runtime r = Runtime.getRuntime();
    String msg = "", emsg = "";
    String cmd = "/bin/sh -c date;pwd;badcmd;ls";
    Process p = r.exec(cmd);
    p.waitFor();
    BufferedReader inOut =
      new BufferedReader(new InputStreamReader(p.getInputStream()));
    BufferedReader inErr =
      new BufferedReader(new InputStreamReader (p.getErrorStream()));
    while ((msg = inOut.readLine()) != null)
    {
      out.println("Out = " + msg);
    }
    while ((emsg = inErr.readLine()) != null)
    {
      out.println("Error = "+ emsg);
    }
    p.destroy();
  } catch(Exception e) {
     out.println(e.toString());
  }
%>
</pre>