cgi java编程_Java的CGI数据编码改如何编写
在这个版本中,我们将收集名字和电子函件地址,并用下述形式将其保存到文件中:
First Last ;
这对任何E-mail程序来说都是一种非常方便的格式。由于只需收集两个字段,而且CGI为字段中的编码采用了一种特殊的格式,所以这里没有简便的方法。如果自己动手编制一个原始的HTML页,并加入下述代码行,即可正确地理解这一点.
上述代码创建了两个数据输入字段(区),名为name和email。另外还有一个submit(提交)按钮,用于收集数据,并将其发给CGI程序。Listmgr2.exe是驻留在特殊程序目录中的一个可执行文件。在我们的web服务器上,该目录一般都叫作“cgi-bin”。如果在那个目录里找不到该程序,结果就无法出现。填好这个表单,然后按下提交按钮,即可在浏览器的URL地址窗口里看到象下面这样的内容:
在Windows32平台下,可利用与Microsoft Office 97或其他产品配套提供的Microsoft Personal Web Server(微软个人Web服务器)进行测试。这是进行试验的最好方法,因为不必正式连入网络,可在本地环境中完成测试(速度也非常快)。如果使用的是不同的平台,或者没有Office 97或者FrontPage 98那样的产品,可到网上找一个免费的Web服务器供自己测试。
当然,上述URL实际显示时是不会拆行的。从中可稍微看出如何对数据编码并传给CGI。至少有一件事情能够肯定——空格是不允许的(因为它通常用于分隔命令行参数)。所有必需的空格都用“+”号替代,每个字段都包含了字段名(具体由HTML页决定),后面跟随一个“=”号以及正式的字段数据,最后用一个“&”结束。
到这时,大家也许会对“+”,“=”以及“&”的使用产生疑惑。假如必须在字段里使用这些字符,那么该如何声明呢?例如,我们可能使用“John & MarshaSmith”这个名字,其中的“&”代表“And”。事实上,它会编码成下面这个样子:
John+%26+Marsha+Smith
也就是说,特殊字符会转换成一个“%”,并在后面跟上它的十六进制ASCII编码。
幸运的是,java有一个工具来帮助我们进行这种编码。这是URLEncoder类的一个静态方法,名为encode()。可用下述程序来试验这个方法:
//: Encodedemo.java
// Demonstration of URLEncoder.encode()
import java.net.*;
public class EncodeDemo {
public static void main(String[] args) {
String s = "";
for(int i = 0; i < args.length; i++)
s += args[i] + " ";
s = URLEncoder.encode(s.trim());
System.out.println(s);
}
} ///:~
该程序将获取一些命令行参数,把它们合并成一个由多个词构成的字串,各词之间用空格分隔(最后一个空格用String.trim()剔除了)。随后对它们进行编码,并打印出来。
为调用一个CGI程序,程序片要做的全部事情就是从自己的字段或其他地方收集数据,将所有数据都编码成正确的URL样式,然后汇编到单独一个字串里。每个字段名后面都加上一个“=”符号,紧跟正式数据,再紧跟一个“&”。为构建完整的CGI命令,我们将这个字串置于CGI程序的URL以及一个“?”后。这是调用所有CGI程序的标准方法。大家马上就会看到,用一个程序片能够很轻松地完成所有这些编码与合并。
cgi java编程_Java的CGI数据编码改如何编写相关推荐
- java编程_Java编程和C语言的比较
很多人都拿Java编程和c语言相比较,那么今天小编就来先说说个人理解吧,新手学习Java很简单,上手也很容易,只需要会拼音就可以,简单而且没有门槛,而c语言学习成本高,更需要投入较大的精力,才能有一个 ...
- 圆周率 java编程_Java编程中实现计算圆周率的方法
想在JAVA编程中实现计算圆周率其实挺简单的,下面我们就来介绍2种Java编程中实现计算圆周率的方法,一起来了解下其中的详情吧. 方法一:割圆法 计算公式为: π≈3*2^n*y_n 其中,n代表割圆 ...
- udp java 编程_JAVA 网络编程之UDP编程
多线程,网络编程,反射,集合是java语言的重头戏,其中反射是java一切框架的基石. 客户端: SocketAddress sa =new InetSocketAddress("10.1 ...
- 猜数字游戏java编程_Java编写猜数字小游戏
本文实例讲述了java实现的简单猜数字游戏代码.分享给大家供大家参考. 以下是Java语言写的一个猜数字小游戏引用片段: import java.text.SimpleDateFormat; impo ...
- http java编程_Java编程:发送HTTP请求到服务器
当Java程序需要向服务器发送请求或读取服务器数据时,使用URLConnection类是比较好的选择.URLConnection类封装了与服务器互动操作的方法,通过它可以建立与服务器的远程连接,检查服 ...
- 消灭泡泡糖游戏java编程_JAVA面向对象编程课程设计——泡泡堂
###一.成员介绍 姓名|任务分配|个人博客链接 --|:--:|--: 张一弛(组长)|GUI设计.游戏界面相关类实现.阿里巴巴扫描纠错.团队博客编写|在做了,在做了,下次一定 王江鸿|Box类.B ...
- 自由落体java编程_java模拟自由落体运动源代码
简单做了一个 import java.awt.borderlayout; import java.awt.button; import java.awt.color; import java.awt. ...
- 质量不同的球java编程_Java 实现小球碰撞GUI
最后一次更新于2019/07/08 修复问题: 错误输入未提醒问题 碰撞小球的图形重叠问题 高速小球越界问题 感谢 大一暑假拜读学姐的一篇文章:我说这是一篇很严肃的技术文章你信吗,本篇在她的基础上加以 ...
- 模拟斗地主游戏java编程_java实现模仿斗地主发牌
本文实例为大家分享了java斗地主发牌的具体代码,供大家参考,具体内容如下 分析 这是一个模仿斗地主发牌的例子: 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 用0~53分别对应相应的花色和牌面 ...
最新文章
- Hibernate 事务总结
- Linq之select子句
- 【网页设计】框架的高度随框架里面的内容的多少而改变——转
- Cambridge center for digital innovation at judge business school
- OpenGL编程指南1:OpenGL简介
- Maven精选系列--继承与聚合
- Available Packages更换国内源后,仍显示为nothing to show
- 优化理论03----优化导论和无约束问题的最优条件、优化问题的类型、局部、全局和严格优化、梯度和Hessian 黑塞矩阵和方向导数、无约束问题的最优条件
- 指数/对数/WIN10计算器
- Presto SQL 时间日期函数
- 西南科技大学OJ题 11 And 11! 0259
- 安装Flash Builder4.6遇到的问题
- 读书笔记202208 TRC2010 Multi-agent model predictive control of signaling split in urban traffic networks
- 由两个曲面确定的交线的切向量求解
- 【金融市场基础知识】——金融市场体系
- 20210406森林里的兔子
- (转)一个初学者RHCE学习考试之路
- iqooneo系统升级好不好_vivo iQOO手机系统更新好吗?
- 直播播放器API(播放器调用方法、参数、接口和事件)
- 算法4:数列极差问题(贪心算法)
热门文章
- 再等等!华为折叠屏手机Mate X预计在7月底至8月初开售
- 2000元档855旗舰来了 网友:都过时了,哪有人买
- 泡面比泡MM好的16个理由
- Linux的shell编程(一)
- 2014年去哪儿网笔试题--给定一个整型数组,对这个整型素组排序,使得按序拼接数组各元素得到的值最小
- nodejs实践录:按行处理文件数据的示例
- mysql用的sql标准_标准SQL语言的用法_MySQL
- simulink和psim仿真结果不同_(格麟倍)航空航天零件硬铬电镀工艺专业仿真评估工具...
- pandas 读取csv_「技巧」Pandas常见的性能优化方法
- 【Spark】Spark 报错 error writing stream metadata exitcode=1073741515