【代码片段】 |
.ashx文件
<body>
<!--表单:收集用户的数据,比如:用户注册信息的时候-->
<!--表单对一个web应用程序网站来说是必不可少的-->
<form method="get" action="AddInfo.ashx">
用户名:<input type="text" name="txtName" /><br />
用户名:<input type="password" name="txtPwd" /><br />
<input type="submit" value="提交" />
</form>
</body>
.html文件
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
string userNmae = context.Request.QueryString["txtName"];//接收的是表单元素name属性的值
string userPwd = context.Request.QueryString["txtPwd"];
context.Response.Write("用户名是:"+userNmae+",密码是:"+userPwd);
}
【get提交】 |
如果表单是以GET方式将数据发送到服务端,那么会将用户在表单中输入的数据放在浏览器的地址栏中发送到服务端。
【post提交】 |
如果数据是以POST提交,那么表单中的数据全部都放在请求报文的请求体中
只将.html 中的"get" 改为"post" ,.ashx代码更改如下, 运行即可。
string userNmae = context.Request.Form["txtName"];
string userPwd = context.Request.Form["txtPwd"];
在IE浏览器中利用HTTP协议分析工具httpwatch插件我们可以看到,如图。
【表单提交时用get还是post?】 |
一般情况下都用post
- 因为用户登录,注册,输入的信息,显示在地址栏中会不安全。post提交比get提交要安全。
- 另外,浏览器都会对地址栏中的数据的长度做一个限制,post发送的数据也比get大(文件)。如果发送文件,post再适合不过。
- 一般搜索的时候用get
除了将表单中的method改成get或post,是否还有其他的方式表示get请求或post请求?
- 在浏览器地址中直接输入地址,敲回车,也是向服务器发送get请求。
- 单击超链接也是get请求
- post只有将表单中的method改成post这一种请求
![](https://i-blog.csdnimg.cn/blog_migrate/5041bba207f5fe308f728c343ee78d40.gif)