web 页面传值&get().post()的区别
表单在页面操作中很常见,比如提交用户信息,留言等。那么表单提交到哪里,表单以什么形式提交(post or get)?表单提交的过程是神马?
现在就回顾一下吧:-D
一 什么是HTTP协议
二 Server与浏览器
三 get 和 post的区别
开始~
一 什么是HTTP协议
HTTP:hypertext transport protocol;
协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。
二 WebService与浏览器
我们在浏览器URL(Uniform Resource Locator)上输入域名回车,浏览器就向web服务器发送一个request,WebService接到Request进行处理,编译生成相应 Response(HTML),然后发送到浏览器。浏览器拿到的Response,推到页面,我们就看到了网页。
URL就是网址:
schema://host[:port#]/path/.../[;url-params][?query-string][#anchor]
http://www.understandHttp.com/example/test.aspx;id=20-178-47?name="migo"&height=20#another
scheme 指定低层使用的协议(例如:http, https, ftp) --http
host HTTP服务器的IP地址或者域名 --www.understandHttp.com
port# HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如 http://www.cnblogs.com:8080/ --默认80
path 访问资源的路径 --/example/test.aspx
url-params id=20-178-47
query-string 发送给http服务器的数据 ,参数,你懂的。一般 ?id=123&role="guide" --name="migo"&height=20
anchor- 锚 --another
三 get 和 post 的区别,重头来鸟~~
Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET,POST,PUT,DELETE.
一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,删4个操作。
我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息.(这段文字摘自:Fish Li)
我们看看GET和POST的区别.
1. 在客户端,GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中
2 对于get方式,服务器端(接受的页面)用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
3 GET是从服务器上获取数据,POST是向服务器传送数据。
4. GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.
5. GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.
细说页面传值的N种方式
1 一个页面可以有多个form表单,但是只能有一个runat="server"的form
2 页面传值的7种方式~
3 get 和 post的区别 (get请求时,通过url传给服务器的值。post请求时,通过表单发送给服务器的值)
超链接形式&Get形式 :
default.aspx:

default2.aspx.cs:

Post形式:post提交这里写了2种形式的,第一种通过js脚本提交form,第二种form提交。
default.aspx:

default2.aspx.cs:接受参数的代码截图 在超链接方式的截图中
default4.aspx
- <form id="form1" runat="server">
- <div>
- <asp:TextBox ID="text" runat="server"></asp:TextBox>
- </div>
- </form>
default4.aspx.cs:
- protected void Page_Load(object sender, EventArgs e)
- {
- if (Request.Form["txtName"] != null)
- {
- this.text.Text = Request.Form["txtName"];
- }
- }
Response.Redirect形式
defaultNew.aspx:
- <p>server控件点击事件响应一个跳转页面的事件</p>
- <asp:Button ID="btn1" Text="server控件into Default3" runat="server" OnClick="btn1_Click" />
default.aspx.cs
- protected void btn1_Click(object sender, EventArgs e)
- {
- Response.Redirect("Default3.aspx?name=" + btn1.Text.ToString());
- }
default3.aspx
- <form id="form1" runat="server">
- <div>
- <asp:TextBox ID="txt1" runat="server"></asp:TextBox>
- </div>
- </form>
default3.aspx.cs:
- protected void Page_Load(object sender, EventArgs e)
- {
- txt1.Text = Request.QueryString["name"];
- string text = Request["name"];
- Response.Write("<script>alert('param1=" + text + "')</script>");
- }
Application形式 & Session形式 & Server.Transfer
default.aspx:
- <p>Application and Session</p>
- <asp:Button ID="btn2" Text="application" runat="server" OnClick="btn2_Click" />
- <asp:Button ID="btn3" Text="Session" runat="server" OnClick="btn3_Click" />
- <a href="ApplicationAndSession.aspx" >into ApplicationAndSession</a>
default.aspx.cs:
- protected void btn2_Click(object sender, EventArgs e)
- {
- Application["name"] = this.btn2.Text;
- Server.Transfer("ApplicationAndSession.aspx");//ApplicationAndSession.aspx?name="1234"
- }
- protected void btn3_Click(object sender, EventArgs e)
- {
- Session["pwd"] = this.btn3.Text;
- }
ApplicationAndSession.aspx
- <div>
- <asp:TextBox ID="txtname" runat="server"></asp:TextBox>
- <asp:TextBox ID="txtpwd" runat="server"></asp:TextBox>
- </div>
ApplicationAndSession.aspx.cs :session["pwd"],session对象需要判空处理
- if (!IsPostBack)
- {
- this.txtname.Text = Application["name"].ToString();
- //this.txtpwd.Text = string.IsNullOrEmpty(Session["pwd"].ToString())?"is null":Session["pwd"].ToString();
- if (Session["pwd"] != null)
- {
- this.txtpwd.Text = Session["pwd"].ToString();
- }
- }
我在CSDN的博文:http://blog.csdn.net/jessie_j_wang/article/details/7638185
浙公网安备 33010602011771号