表单用来接受用户的输入,并将用户的输入以“name=value值对”集合的形式提交到服务器进行处理。那么表单是怎样将数据提交到服务器的?服务器是怎样对表单数据进行处理的?下面我将为大家揭开表单提交背后的秘密
 
 
表单用<form></form> 标记定义,表单里面放置各种接受用户输入的控件
 
 
  1. <form id="login" name="login" method ="get"  action="Get.aspx">
  2. <p>用户名:<input id="txtUserName" name="txtUserName" type="text" /></p>  <!--用户名文本框-->
  3. <p>密 码:<input id="txtPWD" name="txtPWD" type="text" /></p>                     <!--密码文本框-->
  4. <p><input id="subLogin"  name ="subLogin" type="submit" value="提交" /></p><!--提交按钮-->
  5. </form>
 
首先我们来看一下表单form的一些属性
 
1、id:表单的唯一标识
 
2、name:表单的名字
 
3、method:定义表单提交的方法,有两种方法:Post方法和Get方法
 
4、action:用于处理表单的服务器端页面(以URL 形式表示)
 
       表单中的控件有两个属性是非常重要的:name属性和value属性,每一个控件的这两个属性将构成“name-value对”提交到action属性所定义的页面进行处理
 
前边讲到表单提交有两种方法:post和get,那么这两种方法有什么区别呢?
 
1、post方法
 
       用这种方法提交的表单,数据将以数据块的形式提交到服务器,表单数据不会出现在URL中,所以用这种方式提交的表单数据是安全的。如果表单数据中包含类似于密码等数据,建议使用post方法
 
 
用post方法提交数据的表单:
 
  1. <form id="login" name="login" method ="Post"  action="Post.aspx">
  2. <p>用户名:<input id="txtUserName" name="txtUserName" type="text" /></p>  <!--用户名文本框-->
  3. <p>密 码:<input id="txtPWD" name="txtPWD" type="text" /></p>                     <!--密码文本框-->
  4. <p><input id="subLogin"  name ="subLogin" type="submit" value="提交" /></p><!--提交按钮-->
  5. </form>

浏览器中效果

 
 
 
处理表单的Post.aspx页面代码
 
  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. string strUserName = Request.Form["txtUserName"];
  4. string strPWD=Request .Form["txtPWD"];
  5. if (strUserName == "张三" && strPWD == "123456")
  6. {
  7. Response.Write(strUserName + "登录成功!");
  8. }
  9. else
  10. {
  11. Response.Redirect("Login.htm");
  12. }
  13. }

运行的结果

 
 

        由以上代码可知,服务器端页面接收表单数据所用的方法是Request.Form["表单控件的name属性"],接收到数据后便可以进行处理,然后返回结果
 
 
2、Get方法
 
      这是发送表单数据的默认方法,这种方法会以 “?name1=value1&name2=value2”的形式,将表单数据附加到URL的后面,提交到服务器处理,这种方法安全性当然不如post方法,因为表单数据会暴露在URL中,但是它的处理效率要比post方法高。如果表单中的数据没什么隐私数据,建议使用get方法,它的效率较高
 
 
 
用get方法提交数据的表单:
 
  1. <form id="login" name="login" method ="get"  action="Get.aspx">
  2. <p>用户名:<input id="txtUserName" name="txtUserName" type="text" /></p>  <!--用户名文本框-->
  3. <p>密 码:<input id="txtPWD" name="txtPWD" type="text" /></p>                     <!--密码文本框-->
  4. <p><input id="subLogin"  name ="subLogin" type="submit" value="提交" /></p><!--提交按钮-->
  5. </form>
处理表单的Get.aspx页面代码
 
  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3. string strUserName = Request.QueryString ["txtUserName"];
  4. string strPWD = Request.QueryString["txtPWD"];
  5. if (strUserName == "张三" && strPWD == "123456")
  6. {
  7. Response.Write(strUserName + "登录成功!");
  8. }
  9. else
  10. {
  11. Response.Redirect("Login.htm");
  12. }
  13. }

运行结果:

 
 
 
       由以上代码可知,服务器端页面接收表单数据所用的方法是 Request.QueryString ["表单控件的name属性"],接收到数据后便可以进行处理,然后返回结果
 
 
       那么我们在用VS编程的时候会发现,aspx页面的表单并没有指定action属性,那么它的 表单由哪个页面处理呢?aspx页面的表单默认是由本页面处理的,当然你也可以指定由其他aspx页面处理
 
在html中:name指的是用户名称,ID指的是用户注册是系统自动分配给用户的一个序列号。
name是用来提交数据的,提供给表单用,可以重复;
id则针对文档操作时候用,不能重复。如:document.getElementById();
一、ID是在客户端脚本里用!NAME是用于获取提交表单的某表单域信息,在form里面,如果不指定Name的话,就不会发送到服务器端
二、以下元素input、select、form、frame、iframe用name,而以下元素table、tr、 td、div、p、span、h1、li用id,表单元素(form input textarea select)与框架元素(iframe frame)用 name,这些元素都与表单(框架元素作用于form的target)提交有关, 在表单的接收页面只接收有name的元素, 赋ID的元素通过表单是接收不到值的.
当然上述元素也可以赋ID值, 赋ID值的时候引用这些元素的方法就要变一下了.
赋 name: document.formName.inputName document.frames("frameName")
赋 ID : document.all.inputID document.all.frameID
只能赋ID不能赋name的元素:(除去与表单相关的元素都只能赋ID)
body li a table tr td th p div span pre dl dt dd font b 等等
举个简单的例子
<form name="form1">
用户名:<input type=text name="username" id="username">
密码:<input type=password name="password" id="pwd">
</form>
如果我要获得用户名和密码;JS用name获得的话,就得写成document.form1.username.value;
document.form1.password.value;
用id获得:
docuement.getElementById("username");
docuement.getElementById("pwd");
有时候name 可能会出现相同的名字,所以这时候我们用name获得就无法确定获得的是哪个值了。
document.getElemntsByName("username");
这里得到的是一个数组 document.getElementsByName(xxx); 取出的数组
document.getElementById(xxx); 取出是单个对象 还有需要注意的
有些元素 比如 div 可以用 id名字直接得到对象
<div id="div1"></div>
div1.innerHTML = "asdfasdf";
而表单元素 就不可以这样了
只能用 document.getElementById(xx)

表单提交Post方法、Get方法的更多相关文章

  1. form表单提交的几种方法

    form表单提交的几种方法 <form id="myform" name="myform" method="post" onsubmi ...

  2. jQuery中防止表单提交两次的方法

    遇到过表单提交两次的情况,做个记录: 解决场景:首先是表单验证,其次是防止多次提交表单: jQuery中插件:validate_submitHandler_plugin,具体的可以使用关键字搜索: 使 ...

  3. vue---阻止默认表单提交的三种方法

    vue在做表单提交的时候,需要用到一些自定义的验证规则,这个时候就需要阻止表单默认的提交方式. 方法一:直接阻止 <form id="form" @submit=" ...

  4. html表单提交的几种方法

    原文地址:http://www.ijser.cn/?p=34 最普通最经常使用最一般的方法就是用submit type..看代码: <form name=”form” method=”post” ...

  5. js阻止表单提交的两种方法

    下面直接看代码. <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  6. 获取表单提交的数据getParameter()方法

    请求对象:request public String getParameter(String name); 通过request的getParameter(String name)方法获取 表单里面的n ...

  7. 使用JS和JQuery 阻止表单提交的两种方法

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  8. JSP 表单提交 数据库乱码解决方法

    问题:有时候在做jsp逻辑处理时,比如提交表单,从前台注册的页面提交了一部分的数据,但是后面处理的JSP页面通过 request.getParameter 调用时,获取到的是一堆乱码. 乱码分析:因为 ...

  9. php让页面记住表单提交后的信息方法

    <body> <?php $name = $_POST['name']; echo $name; $gender = $_POST['gender']; echo $gender; ...

  10. 表单提交post和get方法区别

    表象不同,get把提交的数据url可以看到,post看不到 原理不同,get 是拼接 url, post 是放入http 请求体中 提交数据量不同,get最多提交2k数据,浏览器的限制.post理论上 ...

随机推荐

  1. nyoj 135 取石子(二) 【NIM】

    取石子(二) 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 描写叙述 小王喜欢与同事玩一些小游戏.今天他们选择了玩取石子. 游戏规则例如以下:共同拥有N堆石子.已知每堆中石子 ...

  2. Can&#39;t open named pipe to host: . pipe: MySQL

    今天遇到mysql连接odbc时报例如以下错误:Can't open named pipe to host: . pipe: MySQL 错误截图例如以下: 依照网上说的方法包含mysql的官方说法都 ...

  3. GoogleFusionTablesAPI初探地图与云计算

    http://developer.51cto.com/art/200906/129324.htm http://yexiaochai.iteye.com/blog/1893735 http://yex ...

  4. angular 复选框checkBox多选的应用

    应用场景是这样的,后台返回的数据在页面上复选框的形式repeat出来 可能会有两种需求: 第一:后台返回的只有项,而没有默认选中状态(全是待选状态) 这种情况相对简单只要repeat出相应选项 第二: ...

  5. poj 3233 Matrix Power Series(矩阵二分,高速幂)

    Matrix Power Series Time Limit: 3000MS   Memory Limit: 131072K Total Submissions: 15739   Accepted:  ...

  6. ASP.Net MVC upload file with record & validation - Step 6

    Uploading file with other model data, validate model & file before uploading by using DataAnnota ...

  7. Qtree3

    题目描述 给出N个点的一棵树(N-1条边),节点有白有黑,初始全为白 有两种操作: 0 i : 改变某点的颜色(原来是黑的变白,原来是白的变黑) 1 v : 询问1到v的路径上的第一个黑点,若无,输出 ...

  8. UI标签库专题四:JEECG智能开发平台 Upload(上传标签)

     1. Upload(上传标签) 1.1.  參数 属性名 类型 描写叙述 是否必须 默认值 id string 上传控件唯一标示 是 null name string 控件name 是 null ...

  9. 20170314 OO ALV 出现双滚动条

    1.出现双进度条,用户改变屏幕大小操作出现问题: 解决方法:  [园童]BJ-ABAP-可乐(708925365)  16:08:55240 * 200改为240 200,然后将滚动条的步进改为1即可 ...

  10. RSA加密:利用模数和指数生成公钥加密

    引子 目前做一款金融产品,由于涉及到资金安全,采用动态公钥的方式,即客户端每次登录服务端返回一个不同的XML串,由公钥的模数和指数构成,我需要用这个串生成公钥加密相关信息.服务端返回的XML串形如: ...