1.大家都知道CGI是通用网关接口,可以用来编写动态网页。而且CGI可以用很多种语言来写,用perl来编写最常见,

我这里就是用perl来编写做例子。讲到编写CGI编程方式,编写CGI有两程编程风格。

(1)功能型编程(function-oriented style)

这种编程方式,不要自己去创建一个对象了,它本身就内置好了一个对象去使用。虽然它内置了一个对象,有些功能并没有

都加载进去,这里面可以自己定义开起哪些功能。注:在加载功能集时前面要加一上 : 才行

#!/usr/bin/perl –w

use CGI qw(:standard);

一. :cgi

加载cgi-handing methods,如param().

二. :form

加载form表单,如textfied().

三. :html2 :html3 :html4

加载所有html2标签,加载所有html3标签,加载所有html4标签

四. :netscape

加载所有, and

标签。

五. :html

加载这个就相当于加载了'html2','html3','html4','netscape'。

六. :standard

加载这个就相当于加一个标准的CGI,就等于加载了'html2', 'html3', 'html4', 'form' 和 'cgi'。

七. :all

将加载所有可用的功能集。

例子:这个例子引用的是perldoc-CGI 上面的

#!/usr/bin/perl -w

use CGI qw/:standard/;

print

header,

start_html('Simple Script'),

h1('Simple Script'),

start_form,

"What's your name? ",textfield('name'),p,

"What's the combination?",

checkbox_group(-name=>'words',

-values=>['eenie','meenie','minie','moe'],

-defaults=>['eenie','moe']),p,

"What's your favorite color?",

popup_menu(-name=>'color',

-values=>['red','green','blue','chartreuse']),p,

submit,

end_form,

hr,"\n";

if (param) {

print

"Your name is ",em(param('name')),p,

"The keywords are: ",em(join(", ",param('words'))),p,

"Your favorite color is ",em(param('color')),".\n";

}

print end_html;

还有一些其它的功能,现在就不讲了,讲一个cgi调试的功能,

-debug

#!/usr/bin/perl -w

use CGI qw/:standard -debug/;

print

header,

start_html('Simple Script'),

h1('Simple Script'),

start_form,

"What's your name? ",textfield('name'),p,

"What's the combination?",

checkbox_group(-name=>'words',

-values=>['eenie','meenie','minie','moe'],

-defaults=>['eenie','moe']),p,

"What's your favorite color?",

popup_menu(-name=>'color',

-values=>['red','green','blue','chartreuse']),p,

submit,

end_form,

hr,"\n";

if (param) {

print

"Your name is ",em(param('name')),p,

"The keywords are: ",em(join(", ",param('words'))),p,

"Your favorite color is ",em(param('color')),".\n";

}

print end_html;

这样可调试,用户输入的任何信息。

(2)面向对象编程(object-oriented style)

这程编程方式,没有创建默认的对象,需要自己去创建。

#!/usr/bin/perl –w

use CGI;

my $q = new CGI;

print

$q->header,

$q->start_html(-title=>'The test CGI'),

"hello word!"

$q->end_html;

就这么简单。

功能型编程没有面向对象编程灵活,它里面的都定义好了,面向对象的可以想要的时候自己去定义,个人喜欢用面向对象编程方式去编写CGI的脚本。

html网页和cgi程序编程,CGI 编程方式学习相关推荐

  1. C++ Web 编程 CGI公共网关接口(CGI):第一个 CGI 程序

    Table of Contents C++ Web 编程 什么是 CGI? Web 浏览 CGI 架构图 Web 服务器配置 第一个 CGI 程序 Hello World! 这是我的第一个 CGI 程 ...

  2. C语言写CGI程序【转】

    一.CGI概述 CGI(公用网关接口)规定了Web服务器调用其他可执行程序(CGI程序)的接口协议标准.Web服务器通过调用CGI程序实现和Web浏览器的交互, 也就是CGI程序接受Web浏览器发送给 ...

  3. CGI简介用C来写CGI程序简要指南

    1. 什么是CGI? CGI 是通用网关接口(Common Gateway Interface)的缩写. 它主要用于服务器端动态输出客户端的请求(如,HTML页面/二进制文件). 也就是说客户端请求参 ...

  4. 记一次失败的幸运召唤师抽奖之CGI程序

    今天闲来无事,玩LOL抽奖,竟然抽中1,2,3,4,5折,喜不自胜,赶紧充值~ 当我买了一个韦鲁斯之后,买第二个的时候提示我 这意味着我只能一个折扣用一次,看着后面的三个想买的我陷入了沉思. 我试着按 ...

  5. CGI简介——用C来写CGI程序简要指南

    http://www.cnblogs.com/ribavnu/archive/2012/11/18/2775552.html 1. 什么是CGI ? CGI 是通用网关接口(Common Gatewa ...

  6. 用C/C++写CGI程序

            使用CGIC库的简要: 库的函数说明: http://www.boutell.com/cgic/#cgiFormStringNoNewlines 1. 打印CGI标准输出头部: cgi ...

  7. 用 c 写 CGI 程序简要指南

    文章摘要:  CGI规定了Web服务器调用其他可执行程序(CGI程 序)的接口协议标准.Web服务器通过调用CGI程序实现和Web浏览器的交互.CGI程序可以用任何程序设计语言编写,如Shell脚本语 ...

  8. 浅谈CGI程序与web间数据交互

    CGI是通用网关接口的简称,通过CGI可实现客户端浏览器与服务器之间数据的交互. CGI通信系统由显示在前端的HTML页面以及运行在服务端上的cgi程序组成.web客户端显示的是相关的html文件,这 ...

  9. java cgi_使用Java语言编写CGI程序

    公共网关界面(CGI)是一种编程标准,符合标准的程序(CGI程序),通过WEB服务器与 运行WEB浏览器的客户进行交互.这些程序允许WEB开发者通过浏览器传送动态信 息(通常嵌于HT ML中).CGI ...

最新文章

  1. 美多商城之购物车(购物车管理3)
  2. Windows Phone 应用程序生命周期
  3. 开源资产管理系统_开源cmdb来啦 通用CMDB 开源资产管理系统
  4. Python函数式编程指南
  5. JAVA多线程学习3--线程一些方法
  6. ubunut安装分区建议
  7. Mybatis简单入门及配置文件标签详情
  8. 让.net 2.0支持并行计算
  9. Android dex修复工具,Android 简单热修复(下)——基于DexClassLoader的实现
  10. java 下载junit的jar包_junit jar包下载-Junit4 jar包下载 --pc6下载站
  11. Jersey MongoDB的使用
  12. ISO-国际标准化组织
  13. 半导体物理学复习大纲
  14. centos7安装英伟达显卡驱动
  15. P2P风控措施和风控流程
  16. 在线作图|2分钟在线绘制三维PCOA图
  17. vnc 键盘慢_在基于Web的VNC应用程序中支持多种键盘布局
  18. 定义一个鸭子的类java_鸭子类型:一切都是为了复用
  19. 可乐要加冰才好喝啊---装饰模式
  20. 2023年天津中德应用技术大学专升本机械电子工程专业考试大纲

热门文章

  1. 聊聊flink Table的OrderBy及Limit
  2. ios开发之--UIDocumentInteractionController的使用(实现更多分享服务)
  3. 基于光线追踪的渲染中景深(Depth of field)效果的实现
  4. 老web换新枝----Sails.js移动设备的全新生产力(五)
  5. CentOS多网卡重命名配置
  6. [MySQL FAQ]系列 -- 数据不算大,备份却非常慢
  7. sql优化技巧_使用这些查询优化技巧成为SQL向导
  8. css背景图片添加url_CSS背景图片–如何向您的Div添加图片URL
  9. 如何确定Ionic是否适合您的项目
  10. figma下载_Figma重新构想的团队库