您的位置:首页 > 编程语言 > ASP

Asp.Net总结(二)Form

2014-02-10 11:44 393 查看
之前在看视频时一直都没有给予表单足够的重视,有些盲目了。光是去比较get和post,却不知道是他们是谁的属性,提交的到底是什么。这篇博客介绍一下表单和表单的相关易混点。

1.表单

找了很多的资料,对于表单也没有明确的概念。百度百科上如是说:“表单在网页中主要负责数据采集功能。”我们将向服务器端发送的数据或信息放在表单中。

一个表单有三个基本组成部分:表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。其中的隐藏域在Asp.Net总结ViewState中多次提到过。举个代码就更明白了什么事表单标签、表单域和表单按钮了。

[html] view
plaincopy





<form action="GetUserInfo.aspx" method="get"> '表单标签

<table border="1" width="400px">

<tr><td colspan="2">用户注册</td></tr>

<tr><td>用户名</td><td><input type="text" name="username" /></td></tr> '表单域

<tr><td>密码</td><td><input type="password" name="pwd" /></td></tr> '表单域

<tr><td><input type="submit" value="提交" /></td><td><input type="reset" value="重置" /></td></tr> '表单按钮

</table>

</form>

在服务器端运行的表单,一个页面只能有一个。

2.表单的主要属性

表单的主要属性有两个:method和action.

action属性:必需的 action
属性规定当提交表单时,向何处发送表单数据。默认为提交给自己。

method属性:默认值为get。浏览器使用method 属性设置的方法将表单中的数据传送给服务器进行处理。共有两种方法:POST 方法和 GET 方法。

这里有必要比较一下这两种方法的区别:GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连.如:

login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。POST把提交的数据则放置在是HTTP包的包体中。

a.通过GET提交数据,用户名和密码将明文出现在URL上,安全性没有post方法高,但是get方法很方便,直接定义一个URL就可以了。

b.由于浏览器的显示字符的长度是有限制的,所以采用get方法的URL太长的话就会受到限制,而post则没有。

3.相关易混点

针对get方法获取本页值的方式有:Request["xxx"];Request.QueryString[“xxx”];Request.QueryString.Get("xxx");

针对post方法获取本页值的方式有:Request["xxx"];Request.Form["xxx"];Request.Form.Get("xxx");

Request的集合有QueryString、Form、Cookies、ClientCertificate、ServerVarible,使用Request["xxx"]时request会按顺序搜索全部的集合直到发现第一个匹配值的名称,这样做的集合效率低,并且是不安全的。尽量避免这样的写法。Request.Form["xxx"]和Request.Form.Get("xxx")指明了是form集合,针对post方法获取页面值。二者实现的效果是一样的。Request.Form返回的是NameValueCollection类型对象,该类型对象有Get方法。所以Request.Form[]和Request.Form.Get()是相同的。需要注意的是集合后面使用的中括号。

Request.QueryString[“xxx”];Request.QueryString.Get("xxx")同理。

学习了表单,我一直都有一个疑问:难道客户端和服务器之间的交互就只有使用表单吗?这个问题我找过资料,可以说是没有收获。请牛人指点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: