仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1105|回复: 19
打印 上一主题 下一主题

[学习教程] 发布一篇CGI数据的编码

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:34:52 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践!
在这个版本中,我们将搜集名字和电子信件地点,并用下述情势将其保留到文件中:
FirstLast<email@domain.com>;
这对任何E-mail程序来讲都是一种十分便利的格局。因为只需搜集两个字段,并且CGI为字段中的编码接纳了一种特别的格局,以是这里没有烦琐的办法。假如本人下手体例一个原始的HTML页,并到场下述代码行,便可准确地舆解这一点:
  1. <Formmethod="GET"ACTION="/cgi-bin/Listmgr2.exe">
  2. <P>Name:<INPUTTYPE="text"NAME="name"
  3. VALUE=""size="40"></p>
  4. <P>EmailAddress:<INPUTTYPE="text"
  5. NAME="email"VALUE=""size="40"></p>
  6. <p><inputtype="submit"name="submit"></p>
  7. </Form>
复制代码
上述代码创立了两个数据输出字段(区),名为name和email。别的另有一个submit(提交)按钮,用于搜集数据,并将其发给CGI程序。Listmgr2.exe是驻留在特别程序目次中的一个可实行文件。在我们的Web服务器上,该目次一样平常都叫作“cgi-bin”(正文③)。假如在谁人目次里找不到该程序,了局就没法呈现。填好这个表单,然后按下提交按钮,便可在扫瞄器的URL地点窗口里看到象上面如许的内容:
http://www.myhome.com/cgi-bin/Listmgr2.exe?name=First+Last&email=email@domain.com&submit=Submit

③:在Windows32平台下,可使用与MicrosoftOffice97或其他产物配套供应的MicrosoftPersonalWebServer(微软团体Web服务器)举行测试。这是举行实验的最好办法,由于不用正式连进收集,可在当地情况中完成测试(速率也十分快)。假如利用的是分歧的平台,大概没有Office97大概FrontPage98那样的产物,可到网上找一个收费的Web服务器供本人测试。

固然,上述URL实践显现时是不会拆行的。从中可略微看出怎样对数据编码并传给CGI。最少有一件事变可以一定——空格是不同意的(由于它一般用于分开命令行参数)。一切必须的空格都用“+”号替换,每一个字段都包括了字段名(详细由HTML页决意),前面跟从一个“=”号和正式的字段数据,最初用一个“&”停止。
到这时候,人人大概会对“+”,“=”和“&”的利用发生困惑。假设必需在字段里利用这些字符,那末该怎样声明呢?比方,我们大概利用“John&MarshaSmith”这个名字,个中的“&”代表“And”。现实上,它会编码成上面这个模样:
John+%26+Marsha+Smith
也就是说,特别字符会转换成一个“%”,并在前面跟上它的十六进制ASCII编码。
侥幸的是,Java有一个工具来匡助我们举行这类编码。这是URLEncoder类的一个静态办法,名为encode()。可用下述程序来实验这个办法:
  1. //:EncodeDemo.java
  2. //DemonstrationofURLEncoder.encode()
  3. importjava.net.*;
  4. publicclassEncodeDemo{
  5. publicstaticvoidmain(String[]args){
  6. Strings="";
  7. for(inti=0;i<args.length;i++)
  8. s+=args[i]+"";
  9. s=URLEncoder.encode(s.trim());
  10. System.out.println(s);
  11. }
  12. }///:~
复制代码
该程序将猎取一些命令行参数,把它们兼并成一个由多个词组成的字串,各词之间用空格分开(最初一个空格用String.trim()剔除)。随后对它们举行编码,并打印出来。
为挪用一个CGI程序,程序片要做的全体事变就是从本人的字段或其他中央搜集数据,将一切数据都编码成准确的URL款式,然后汇编到独自一个字串里。每一个字段名前面都加上一个“=”标记,紧跟正式数据,再紧跟一个“&”。为构建完全的CGI命令,我们将这个字串置于CGI程序的URL和一个“?”后。这是挪用一切CGI程序的尺度办法。人人即刻就会看到,用一个程序片可以很轻松地完成一切这些编码与兼并。
再说第三点:我并没有提到服务器也要整合,然后是IDE,一个好的IDE能够200%提高开发的速度,就说图形方面:你是经过简单托拽和点击就能实现功能好那。
谁可相欹 该用户已被删除
沙发
 楼主| 发表于 2015-4-3 11:33:59 | 显示全部楼层
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-23 18:58

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表