Compare Plans

2021-08-20

CGI+JAVA协议

2.4.5 CGI
       上面讨论的HTML只提供单向通信能力,客户可以点击请求服务器提供所需的页面,但是反过来服务器向客户请求信息就难以做到。随着Web的广泛使用,越来越多的应用需要客户和服务器之间进行交互式通信,例如电子购物、数据库访问、免费软件散发等都要求客户填登记表、给出搜索关键词、键入个人信息等。为此,HTML2.0版本引入了登记表(Form)这一重要的结构。
       表定义了多种类型输入框(box),用户可在这些框中写入文字或作出选择,HTML用INPUT标记进行描述,其一般格式为:
       <INPUTTYPE="···"NAME="…“VALUE="…“SIEE=…〉其中,
       NAME指示变量名,用户输入该框的数据就赋值给该变量;VALUE指示该框输人数据的缺省值;SIZE指示该框所占的列数。
       登记表已定义的输入框类型有:
.文本(TEXT)框:为输入框的缺省类型,用户需在此类框中键入字符串。
.无线电(RADIO)按钮:单选按钮,用户需在所列的几个选择钮中选择一个。
.开关按钮(CHECKBOX):多选按钮,用户可在所列儿个选择按钮中任选若干个。
.门令(PASSWORD)框:同文本框,只是用户键入字符串不显示。
.文本域(TEXTAREA)框:同文本框,只是可包含多行文字。
.发送(SUBMIT)按钮:点击此钮,将登记表所有信息送往服务器。
.复位(RESET)按钮:点击此钮,登记表各框回复初态。
.隐形(HIDDEN)框:该框可显示文字,但不能点击或修改。其用途是用户需在多个页面中进行登记选择,某些选项已在前面的页面中选定,在当前页面不允许再作变动。
.图形(IMAGE):用于活性地图和其它可点击图像。用户在地图上点击后,选定像素的座标值赋给指定变量,登记表立即自动返回给服务器。
        如果单选或多选项较多,HTML还可提供菜单式选择形式,此时所有选择项列千标记对<SELECT〉和</SELECT〉之间。
        登记表信息的发送有3种方式:点击发送按钮;点击活性地图;在只有一个文本框的登记表中,只要简单地回车即可。
        整个登记表的内容列于标记对<FORM〉和</FORM〉之间,FORM带有2个必备参数,其格式为:
                <FORMACTION="…“METI-10D=…〉
       其中,ACTION指示发送目的地的URL,ME'IlIOD指示发送采用的方法。HfML定义了两种发送方法:GET和POST,也就是登记表的各项信息如何以紧凑的文本形式表示,回送给服务器。
       登记表信息送达后,服务器必须据此进行操作和处理,例如检查口令、核对信用卡、检索数据、回送页面等,这些处理和具体应用有关,并需和数据库等交互,因此必须在服务器机器中设置后台处理程序。由于Web服务器程序可由各单位自行开发,类型各不相同,要使后台程序在任何服务器上都能运行,就需要定义一个服务器和登记表后台处理程序之间的标准接口,通过这个接口,服务器将登记表信息传递给后台程序,后台程序则将处理后的输出信息返回服务器。  这一标准接口就称之为CGI。它是WWW实现交互功能的主要工具。通常称遵守CGl标准的服务器侧后台可执行程序为CGl程序,规定放在站点的cgi-bin目录下。可以用任何编程语言书写。
 
CGI基本原理
图2.46  CGI基本原理
        图2.46示出CGI程序和服务器、客户的关系及相关接口。其基本工作过程可以下述例子予以说明。设某部门建立了一个Web网页的索引数据库,可根据关键字或主题进行检索,并想提供给Web用户使用。为此,必须编写一个CGI程序,能对数据库进行操作,且经CGI与Web服务器接口。该CGI程序的URL设为http://www.njupt.edu/cgi-bin/pagesearch,表示该程序名为pagesearch,位千站点www.njupt.edu的cgi-bin目录下。
       当Web用户需使用该服务时,服务器送出登记表,用户填好表格后点击发送按钮,浏览器按(FORM〉中ACTION参数指明的URL建立TCP连接,然后调用MEIHOD参数规定的方法(通常为POST),将登记表中的各项信息经HTIP传给服务器。服务器识别这是对位于cgi-bin目录中某页面文件的操作,就将该文件解释为可执行程序,启动该程序,并将客户输入的登记表信息传给此程序,同时设置必要的环境变量,如CONTENT-LENGIB说明输入字符串的长度。
        然后,CGI程序调用库程序对输入信息进行语法分析,将其转换为更易使用的形式,并据此对数据库进行相应的操作。
        最后,CGI 根据操作结果生成输出信息,该信息可以是一个HTML页面,并将其返回服务器( 服务器将其送交客户。由此实现Web的交互过程。
        CGI定义了客户至服务器传送登记表数据的两种方法:URL中的查询行(即GET)方法和消息体(即POST)方法;定义了服务器向CGI程序传送数据的三种机制:命令行参数、标准输入(即消息体输入)和环境变量;还定义了CGI程序向服务器返回数据的两种方式:标准输出和透明输出,其中透明输出指的是CCI  程序的输出直接送给客户,尤需服务器作任何处理。
2.4.6Java
       上述CGI机制虽然使Web具有双向交互功能,但是由于CGI程序位于远端,尚不可能提供快速交互能力。Sun 公司提出的面向对象的Java语言用于WWW后,可以在Web页面中嵌入一个小的Java程序,称之为“应用小程序”(applet),其嵌入方法和图像嵌入相同。典型应用情况是在HI'ML描述中插入如下语句:
      〈APPIEfCODE=···WIDTH=…HEIGHT=···〉〈/APP1.Ef〉其中,〈APPLET〉是新定义的HTML标记,参数CODE指明程序名,参数WIDTH和HEIGHT指明该程序缺省窗口的大小。当浏览器读到该语旬后,就从当前页面的网站下载该Java小程序,其后该程序就可在客户机上运行。如果该程序位于其它地点,则可在(APPLET〉标记中增设CODE-BASE参数,指明该程序所在的URL。
        为了防止applet带入病毒,并使其具有适应不同机器的可携带性,applet被编译成字节代码形式。客户机中装有相应的解释器,ap­plet下载后采用解释方式运行,以确保安全。
        采用Java机制有许多好处。首先,可有效地提高Web页面的交互功能。例如,页面可包含游戏画面,如象棋盘,而用Java编写的下棋程序已随该页面下载至客户机,这样用户可调用页面在本地和机器对奕。又如,用户要填写很复杂的所得税报税单,他不需要手工填写或寻找专用软件填写,只需要简单地点击税务局的主页,下载一个报税applet。该程序会询问一些问题,然后和用户的雇主、银行、股票经纪人交互,采集其工资、利息、红利信息,进行计算后填表,最后显示表格内容,用户确认后就可发送。
        其次,在客户机上运行applet可以使Web页面增加动画和声音效果,而用户尤需配备外置阅读程序。声音可以在页面下载时作为背景音乐播放,也可以在点击某画面时作为情景配音播放,播放ap­plet均随页面或点击调用下载。动画处理也与此类似。由千applet在本地运用,因此可以获得相当好的实时效果。
       再次,基于Java的浏览器具有很好的扩展性。通常浏览器的基本功能是HTML解释器,然后通过配备内置模块,可执行规定的协议(如HTIP、ITP等)以及解码规定格式的声音和图像。如果某页面包含一种新的图像格式,如MPEG-2,该浏览器就无法显示该画面,用户必须安装一个合适的外置阅读程序。因此浏览器的功能完全取决 于内置模块的配置,如图2.47(a)所示。采用Java后,浏览器的功能可动态扩展。在启动时,只是一个空的Java虚拟机,只含Java解释器,如图2.47(b)所示。其后,通过下载HTML和1-HTTP applet就能阅读标准Web页面。如果某单位或个人构思一种新的格式设计其页面,浏览器可自动加载解释该格式的applet,甚至尤需对该编码方式予先标准化。同样,如果某些应用需要采用特殊的协议,如银行交易需要专用的保密协议,也可通过applet动态下载该协议。这样,该浏览器运行一段时间后,就装备了各种协议和解码程序,如图2.47(c)所示。随时间推移,其功能不断扩展。
Java的浏览器结构特点
图2.47  基于Java的浏览器结构特点
        由于IP网络电话常常和Web应用结合在一起,用户需要在浏览时点击发出呼叫,或者在浏览时接受来话呼叫,这些都要求浏览器和服务器交换必要的信息,并执行某些判断和操作,因此CGI和Java技术在IP网络电话应用中具有重要的作用。
 
 

联系我们

028-83110277

IP电话机视频电话机供应商

手机:

成都世讯电科信息技术有限公司

成都世讯电科信息技术有限公司是一家多媒体融合通信解决方案及运营服务提供商,公司专注于为广大用户提供简单高效的通信产品和真正符合行业用户需求的行业应用解决方案,让用户享受到个性化、私密性强又具开放性、兼容性强又易于管理的高科技服务,帮助用户实现办公及运营通信的现代化与网络信息化。

公司拥专注于IP多媒体解决方案的应用与实施,有IP多媒体通信系统(IPBX)、IP多媒体通信平台定制与搭建(运营、对讲广播、门禁、调度、音视频会议及与视频监控交互式应用等)、IP电话机、视频电话机、项目租赁、云通信及系统集成等服务。

电话:028-83110277

Q Q:86313858