从jsp页面执行bash脚本

时间:2012-10-02 22:02:11

标签: javascript bash jsp tomcat

我之前编写过一个执行java类的bash脚本,它在运行该类之前会进行其他检查。 运行时需要参数; ./SyncIPs.cmd 10.0.1.45并执行一些命令。

我正在尝试使用html / javascript按钮在jsp页面中运行此脚本。到目前为止,我有两个jsp文件如下:

portal.jsp:

      <%
      if(request.getParameter("submitted")==null)
  {

    if(check)
    {

        %><%@include file="Sync.jsp" %><%
    }
    else
    {

        %><%@include file="Sync.jsp" %><%
    }   
 }
     %>

Sync.jsp:

   <%
   if(request.getParameter("submit") == null)
   {

   %>
    <div class=display>this is the Sync</div>

    </div>

    <br>
    <form method="POST" action="/project/jsp/Portal.jsp" id=form2>


  <input type=hidden name=sync>
      <!---this is where I want my script to be run from,--->

   <input type="button" value="" name="submit" action="run" 
   onClick="if(runOnSubmit()){getSomethingWithAjax
   ('Portal.jsp'+getAllFormElementsAndMakeIntoURI(true),
   '','hereIsTheMainHeaderSpan',false,false);}">
   <%
   }//end if
   %>

如何让这个脚本运行并在portal.jsp页面上发布?

2 个答案:

答案 0 :(得分:3)

你必须在.jsp

中加入一些java代码
try {
  Process p = Runtime.getRuntime().exec("/path_to_your_script/SyncIPs.cmd 10.0.1.45");
  p.waitFor();
  System.out.println("exit code: " + p.exitValue());
} catch (Exception e) {
  System.out.println(e.getMessage());
} 

注意:请注意可能存在的安全问题

答案 1 :(得分:0)

使用Runtime.getRuntime().exec()可能就是您所需要的。

HTH