《浅析jsp http服务器支持cgi》由会员分享,可在线阅读,更多相关《浅析jsp http服务器支持cgi(2页珍藏版)》请在金锄头文库上搜索。
1、浅析浅析 JSPJSPJSPJSPHTTPHTTPHTTPHTTP 服务器支持服务器支持 CGICGICGICGI本文简单介绍 JSP HTTP服务器支持 CGI,包括介绍不需要参数的 CGI 程序的调用和需要参数的 CGI 程序的调用。JSP HTTP 服务器支持 CGI 简而言之就是支持客户端调用服务器端的 CGI 例程。在服务器端,CGI 一般以可执行文件的形式存放(例如:可执行文件,可执行脚本) 。这些 CGI执行文件可以单独运行也可以接受客户端的请求作为参数运行。而 HTTP 服务器就要担负起调用 CGI 可执行文件以及将客户端的请求参数传递给 CGI 程序, 并将 CGI 的执行结
2、果反馈给客户端。1. JSP HTTP服务器不需要参数的 CGI 程序的调用对于不需要参数的 CGI 程序,已经将功能模块固定设置到 CGI 程序中,当调用时,执行该功能模块即可。这种类型的 CGI 程序一般用于功能比较固定的场合。以下是既支持需要参数的 CGI 也支持无需参数的 CGI 的代码:1/Parameter is null2if(params.equals(“) = true) 3command = fileName;45else /Generate the command line 6command = fileName + “ “ + params;78/Execute CGI
3、 process as child process Process proc = m_rt.exec(command,null);9/Create CGI process output stream10BufferedReaderpin=newBufferedReader(newInputStreamReader(proc.getInputStream() ) );11String line = null;12/Get the output from CGI process13while( (line = pin.readLine() ) != null) 14m_sout.println(l
4、ine);1516/Wait for CGI process finish17proc.waitFor();以上代码中, 通过 Java 的 Runtime 类的 exec 接口调用 CGI 可执行文件, 并将 CGI 的执行输出返回给客户端。2. JSP HTTP服务器需要参数的 CGI 程序的调用对于需要参数的 CGI 程序,功能模块没有固定,而是需要以及传入参数才能执行相应的功能。这种类型的 CGI 程序相对比较灵活。被调用时,HTTP服务器必须将客户端请求中的参数行传入到 CGI进程中, 在 CGI程序中对请求进行解析, 进而执行相应的模块。 HTTP服务器与 CGI 进程的通信可以采用三种方式:(1)以命令行的方式传入执行参数。参见以上代码(“command = fileName + “ “ +params;”)中。将可执行文件和参数作为命令行传入调用。(2)写入到 CGI 进程的标准输入(stdin)中,CGI 程序只需要从标准输入中读取相应的参数行即可。(3)将参数行写入到 CGI 进程的环境变量 QUERY_STRING 中。CGI 从环境变量QUERY_STRING 中读取命令行参数。本文由天津白癜风医院(http:/