我的目标是在apache webserver上运行CGI。我的CGI是用Java编写的。我正在使用一个批处理文件(后来可能是一个perl脚本)来启动完成所有业务的java CGI。
批处理文件可以工作并启动Java CGI。 java程序本身可以工作。但是没有任何东西从我的java代码发送回浏览器。我正在做简单的System.out.println来向浏览器发送内容。我使用this作为参考
echo Content-Type: text/html
echo.
echo ^<html^>^<head^>^</head^>^<body^>
echo Hello world!!!
java -cp My.jar MyClass
echo ^</body^>^</html^>
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等在容器内运行...
答案 0 :(得分:0)
我想知道是否,
如果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^>
无论如何,很高兴你解决了这个问题:) 干杯