一、URL
统一资源定位符(Uniform Resource Locator)是可以从互联网上得到的资源的位置和访问方法的一种简洁的表示。互联网上的每一个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
二、get与post
在B/S中,前台与后台的数据交互,都是通过HTML中Form表单来完成的,form提供了两种数据传输方式,get与post提交。
当然由于数据传输时是遵循HTTP协议的,而这个协议又是基于TCP/IP的关于数据如何在万维网中如何通信的协议。所以get与post二者也都是基于TCP/IP 的,都是TCP链接,这样以来,其实get与post的实现原理上是一样的。
但是为了对紧急数据的快速传输(或者是为了尽量避免数据堵塞),出现了这两种传输方式,使get和post传输的过程区别开来,达到传输不同数据的效果。详细内容可参考这篇博客
那么他们两个在传输过程中有什么“区别”呢?
1、get是从服务器上获取数据,post是向服务器传送数据。
2、get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3、对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端
用Request.Form获取提交的数据。
4、get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。
但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5、get安全性非常低,post安全性较高。
三、request与response
表单中的数据提交之后用request来接收(可以接收get提交的也可以接收post来提交的),由response将数据返回到浏览器。随后这个对象销毁。
例子:
前台HTML中的代码
<body>
<form method="get" action="WebForm1.aspx">
<table style="width:50%;">
<tr>
<td> </td>
<td>
<input id="text1" name="txtUserName" type="text" /></td>
<td class="auto-style1"> </td>
</tr>
<tr>
<td> </td>
<td>
<input id="text2" name="txtUserPwd" type="text" /></td>
<td class="auto-style1"> </td>
</tr>
<tr>
<td> </td>
<td>
<input id="ccc" type="submit" value="提交" /></td>
<td class="auto-style1"> </td>
</tr>
</table>
</form>
</body>
上面,method方法,即表单的提交方法。action方法,指定表单的提交目标。
后台接收代码
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//Request三种获取表单值得方法。
#region 对于post方法递交表单的获取值方法
//string userName = Request.Form.Get("txtUserName").ToString();
//string userPwd = Request.Form.Get("txtUserPwd").ToString();
#endregion
#region 对于get方法递交表单的获取值方法
//string userName = Request.QueryString["txtUserName"].ToString();
//string userPwd = Request.QueryString["txtUserPwd"].ToString();
#endregion
#region 对两者方法都适用的方法,运用Reuqest的索引值去获取所要求的表单值
string userName = Request["txtUserName"].ToString();
string userPwd = Request["txtUserPwd"].ToString();
#endregion
Response.Write("登陆的用户名为:" + userName + ";密码为:" + userPwd);
if (userName=="a"&&userPwd=="b")
{
Response.Redirect("WebForm2.aspx");
}
else
{
Response.Redirect("login.html");
}
}
}
对于response对象,主要用到的方法是:
respone.write(string)
responst.redirect(url)
response.write(string)的作用是从服务器端向客户端返回数据(写数据)。
response.rediec(“url”)的作用是在服务器端重定向另一个网页。
二者的属性
Request常用属性
AppIicationPath | 传回目前正在执行的服务器端的虚拟目录。 |
Browser | 传回有关客户端浏览器的功能信息 |
Clientcertificate | 传回目前客户端所发出的网页浏览请求的联机ID。 |
ContentEncoding | 传回客户端所支持的字段设定。中文Intemet ExpIorer预设ChineseTraditional(Big5)。 |
ContentType | 传回目前需求的MIME内容类型。 |
Cookies | 传回一个HttpcOOkiecoIIection对象的集合。 |
FiIes | 传回客户端上传的文件集合。 |
Form | 传回有关窗体变量的集合。 |
Response常用属性
BufferOutput | 设定HTTP输出是否要做缓冲处理,预设为True。 |
Cache | 传回目前网页快取的设定。 |
Charset | 设定或取得HTTP的输出字符编码。 |
Cookies | 传回目前请求的Httpcookieco}lection对象的集合。 |
IsCIientconnected | 传回客户端是否仍然和服务器连接。 |
Statuscode | 传回或设定输出至客户端浏览器的HTTP状态码,预设是200。 |
StatusDescription | 传回或设定输出至客户端浏览器的HTTP状态说明字符串.预设是OK。 |
SuppressContent | 设定是否将HTTP的内容送至客户端浏览器,若为True则网页将不会传至客户端。 |
Response常用方法
三、isPostBack——判断是否回发
if (!IsPostBack) 当页面不是回发时就执行相应的代码。
一般在page_load事件的前面都会加上,当此页面为回发状态时(即IsPostBack=true),代表之前已经加载过这个页面中的控件,并获得了控件中的内容,此时如果再次重新加载则会清空原来的数据,使页面重新生成。