我想在JSP页面

时间:2016-03-17 12:00:33

标签: java jsp unix

当我点击按钮时,我想调用Unix服务器上的ksh脚本。

我在unix服务器上做这一切,我有所有ksh和jsp脚本。 实际上我想做的是我有一个带有一个文本框的JSP页面(进入主机)和一个按钮。

一旦客户进入主机并点击按钮,我想调用位于同一个unix位置的ksh脚本,并将此主机名作为参数。

请帮我解决这个问题。 如果我能获得任何示例代码,那将是很棒的。

2 个答案:

答案 0 :(得分:0)

您需要在后端创建一个servlet,并对Servlet使用AJAX类型的资源请求。进入servlet之后,您将使用运行时执行脚本: Runtime.getRuntime().exec("your script");

或使用Process Builder看起来像:

ProcessBuilder pb = new ProcessBuilder("Script name", "arg1", "arg2");
Map<String,String> args = pb.environment();
args.put("arg1", "Val1");
....etc.....
Process p = pb.start();

答案 1 :(得分:0)

这是有效的代码:
但我在该目录c:\ named tang.bat.下有一个批处理文件 尝试在那里放一些文件,它将运行

<%@page import="java.io.*"%>
<%
Runtime r=Runtime.getRuntime();
Process p=null;
String cmd="c:/Tango.bat";
try{
p=r.exec(cmd);
InputStreamReader isr=new InputStreamReader(p.getInputStream());
BufferedReader br=new BufferedReader(isr);
String line=null;
while((line = br.readLine()) != null){
%>

<%= line %>

<%
}
p.waitFor();
}
catch(Exception e){
out.println(e);
}
System.out.println(p.exitValue());
%>

否则,无论你想要什么,都试试这个

<%@page import="java.io.*"%>
<%
Runtime r=Runtime.getRuntime();
Process p=null;
String cmd="/home/shdir/runmms.sh";
try{
p=r.exec(cmd);
InputStreamReader isr=new InputStreamReader(p.getInputStream());
BufferedReader br=new BufferedReader(isr);
String line=null;
while((line = br.readLine()) != null){
System.out.println(line);
}
p.waitFor();
}
catch(Exception e){
out.println(e);
}
System.out.println(p.exitValue());
%>