将信息从Java(Servlet)传递到CGI方法?

时间:2009-05-28 16:18:40

标签: java servlets cgi

我有一个从表单中获取信息的java servlet,我需要获取该信息并将其传递给.exe程序中的特定方法,并获取该方法返回的值。

有没有好办法做到这一点?

2 个答案:

答案 0 :(得分:1)

如果“.exe program”是指DLL,则可以使用JNI从Java中调用其中的方法。

这是非常重要但可行的。

答案 1 :(得分:1)

我必须在我的一个项目中执行此操作,但我们使用的是Linux而不是Windows。以下是如何进行此操作的一般蓝图。

您需要:

  1. 将您的.exe CGI文件设置为 使用Runtime.getRuntime().exec(filename, env)
  2. 的外部流程
  3. 在外部进程中设置对输入流和错误流的引用。
    InputStream fromCgi = p.getInputStream();
    InputStream errorStream = p.getErrorStream();
    
  4. 然后将外部进程输入流中的字节复制到servlet输出流中。
    IOUtils.copy(fromCgi, response.getOutputStream()); //using apache commons io
  5. 注意:需要在所有部分之间放置很多粘合剂,但这是如何在Servlet中包装CGI的一般策略。