Http请求应答机制解析
时间:2010-09-10 来源:喝高了点
http请求应答机制:客户端向服务器付出请求,服务器接受请求后应答客户端。
客户端向服务器发送请求主要有以下方式:
一、超链接
新建test.html页面,在页面上画一个表格,共两列,第一列为列的序号,地二列为操作
<tr><td>1</td><td><a href="test.ashx?row=1">点击-超链接</a></td></tr>
新建test.ashx页面,作为Html页面的处理页面,其主要代码为:
string row = context.Request["row"];
context.Response.Write(row+"被点击了");
解释:当我们打开html页面时,会跳转到ashx页面,并显示:1被点击了。
二:提交表单
在html页面中增加一个表单标签,action=“test.ashx”method=“get”id=“from1”,并在form中添加一个隐藏域
<input type="hidden" name="row" id="row"/>
把上面的table放到form中,并添加一行
<tr><td>2</td><td><input type="button" value="点击" onclick="document.getElementById('row').value='2';document.getElementById('form1').submit();"/></td></tr>
点击按钮后,会跳转到ashx页面,显示:2被点击了。我们仔细观察地址栏,发现ViewState也被提交了。
三:table中添加一行:
<tr><td>2</td><td><a href="javascript:document.getElementById('row').value='2';document.getElementById('form1').submit();">点击</a></td></tr>
提交的效果与二一样。
我们当然也可以直接用submit按钮提交。比较一下区别:同过超连接提交的只时一部分信息,不能将整个表单提交。只能get方式提交。二三方式提交的是整个表单。主要区别还有一可以在新的窗口中打开,二三不能。
新建aspx网页,把html的主要内容拷贝到aspx中,并作简单的修改,如ashx改成aspx
在cs文件的load事件中添如下代码:
if(IsPostBack)
{
string str = Requert["row"];
Response.Write(row+"被点击了");
}
运行时我们发现,第一种方式怎么也出现不了预期的结果,这是因为超链接每次点击都是导向的一个新页面,即使是一个页面也不能被识别(没有提交ViewState)。而其他两种方式工作正常。