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

将信息从Java(Servlet)传递到CGI方法?,java,servlets,cgi,Java,Servlets,Cgi,我有一个Javaservlet,它从表单中获取信息,然后我需要获取该信息并将其传递给.exe程序中的特定方法,并获取该方法返回的值 有没有一个好的方法可以做到这一点?如果“.exe程序”指的是一个DLL,您可以使用它从Java调用方法 这不是小事,但是可行的 我不得不在我的一个项目中这样做,但我们使用的是Linux而不是Windows。这里有一个如何着手做这件事的总体蓝图 您需要: 将.exe CGI文件设置为 外部进程使用Runtime.getRuntime().exec(文件名,env) 安

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

有没有一个好的方法可以做到这一点?

如果“.exe程序”指的是一个DLL,您可以使用它从Java调用方法


这不是小事,但是可行的

我不得不在我的一个项目中这样做,但我们使用的是Linux而不是Windows。这里有一个如何着手做这件事的总体蓝图

您需要:

  • 将.exe CGI文件设置为 外部进程使用
    Runtime.getRuntime().exec(文件名,env)
  • 安装程序引用外部进程中的输入流和错误流。
    InputStream fromCgi = p.getInputStream();
    InputStream errorStream = p.getErrorStream();
    
    InputStream fromCgi=p.getInputStream();
    InputStream errorStream=p.getErrorStream();
    
  • 然后将外部进程输入流中的字节复制到servlet输出流中。
    IOUtils.copy(fromCgi, response.getOutputStream()); //using apache commons io
    
    IOUtils.copy(fromCgi,response.getOutputStream())//使用apache commons io

  • 注意:需要在所有部分之间添加很多胶水,但这是如何在Servlet中封装CGI的一般策略。

    谢谢,效果很好!我发现这一点非常有帮助: