有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

apache将Java输出传输到调用脚本

我的目标是在ApacheWebServer上运行CGI。我的CGI是用Java编写的。我正在使用一个批处理文件(稍后可能是一个perl脚本),它启动了处理所有业务的java CGI

批处理文件工作并启动Java CGI。java程序本身就可以工作。但我的java代码不会将任何内容发送回浏览器。我在做简单的系统。出来println将内容发送到浏览器。我用this作为参考

我的批处理文件

    echo Content-Type: text/html
    echo.
    echo ^<html^>^<head^>^</head^>^<body^>
    echo Hello world!!!
    java -cp My.jar MyClass
    echo ^</body^>^</html^>

我的Java文件

    new File("C:\\wamp\\www\\cgi-bin\\" + new Date().getTime()).mkdir();
    System.out.println("<b>Hello world from Java</b>");

旁注——我这样做是因为(不使用servlet容器等)我的任务有2到3分钟长,我不想阻止servlet。同时,我需要向用户更新任务的进度。这是非公开的,我不想让它变得太复杂,通过使用JMS、ajax等在容器中运行它


共 (1) 个答案

  1. # 1 楼答案

    我想知道,
    如果java -cp My.jar MyClass作为一个单独的命令显示它应该显示的内容,但在批处理中不起作用,那么for /f可能会有一个解决方法

    @echo off
      rem  This works in Wampserver's Apache cgi-bin...
      rem     http://localhost/cgi-bin/testbat.bat
    echo Content-Type: text/html
    echo.
    echo ^<html^>^<head^>^</head^>^<body^>
    echo ^<H1^>Hello world!!!^</H1^>
    echo ^<PRE^>
    FOR /F "usebackq delims==" %%i IN (`dir`) do echo %%i
    echo ^</PRE^>
    echo ^</body^>^</html^>
    

    无论如何,很高兴你解决了这个问题:) 干杯