关于Form中的post方法和get方法
2007-08-12 08:24 libiver 阅读(229) 评论(0) 编辑 收藏 举报今天在学习ASP.NE时,程序在运行时老是发生错误
System.NullReferenceException: 未将对象引用设置到对象的实例。
指向:String strUserName = this.Request.Form.Get("txtUserName").ToString();
后来经过我的努力解决的问题,原因是我对表单的post和get提交方法的理解错误。我们都知道在B/S应用程序中,前台与后台的数据交互,都是通过HTML中Form表单完成的。Form提供了两种数据传输的方式——get和post。但这两种方法是有区别的。
1、对于get提交的数据,WWW服务器将把数据放在环境变量QUERY_STRING
中,对于POST方法,数据被送到WWW服务器的STDOUT中,然后CGI从自己的STDIN
中读取。这就是我的程序出错的原因,Form表单的默认数据传输是get,而在我的程序中刚好把顺序搞错了。
2、get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。
3、get和post传输的数据长度不一样。
4、get不安全,并且get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集