浅谈Web数据交互(一)
C/S模式和B/S各有其有点也各有其缺点,B/S模式在开发中需要考虑数据如何从客户端提交到服务器端,数据又如何返回到客户端,这些是B/S模式所特有的,在去年之前,开发B/S模式的程序,我都是利用form来交互数据,当我看到XML之后,发现XML是个好冬冬,有很多优点,有好的东西当然不能独享啦,想当年为了实现XML交互数据,几乎把网络翻了个遍。咚,一块砖头上来了。呵呵,废话少说,下面我们就进入正题。
B/S模式分为服务器端和客户端,客户端接受用户的请求,客户端向应用服务提出请求,应用服务从数据库服务中获得数据,应用服务将数据进行计算并将结果提交给客户端,客户端将结果呈现给用户。这样,我们就看到了数据从客户到服务器,经过服务器的处理再返回到客户端,由客户端软件(如IE)显示结果。
(以ASP教本语言为例,其它的语言一样哈。)
1.Form方式
Form方式是最基本的向服务器提交数据的方式。
test.asp文件代码:
<%@ Language=VBScript %>
<%
Response.Expires=-1
Response.CharSet="UTF-8"
Session.CodePage="65001"
%>
<form name="frmTest" id="frmTest" action="test.asp" method="POST">
<input name="name" id=" name" type="text" value="">
<input type="hidden" name="number" id="number" value="10">
<input type="submit" value="Submit" name="B1">
</form>
<%
dim intnumber
dim strname
if IsEmpty(Request("name")) then
strname =""
else
strname =Request("name")
end if
if IsEmpty(Request("number")) then
intnumber =0
else
intnumber =Request("number")
end if
Response.Write("<br>")
Response.Write("You input name is:" & strname)
Response.Write("<br>")
Response.Write("Hidden number value is:" & intnumber)
%>
此段代码完成了从客户端输入数据,然后通过Form提交到服务器端,服务器页面接收到数据后将数据发送到客户端显示的过程。
下面解释一下此段代码:
<form name=”frmTest” id=”frmTest” action=”test.asp” method=”POST”>
</form>
此代码之间的为一个提交域,当这个form提交的时候,其中的数据都提交到服务器端。其中action为提交数据给的页面,也就是接受form数据的页面,这里为页面本身,当然也可以为其它页面。
method为提交的方式
<input name=”name” id=” name” type=”text” value=””>
此代码为一个输入框,
<input type="hidden" name="number" id=" number " value="0">
此代码为一隐藏value,不会在页面上显示,用来保存一些数据。
当<input type="submit" value="Submit" name="B1">按钮按下去的时候,form就向服务器数据。服务器端的脚本
if IsEmpty(Request("name ")) then
strname =””
else
strname =Request("name ")
end if
Request("name ")取得提交的form中的name为name的字段的值。
2.URL方式
具体的做法就是通过URL地址栏传递数据到服务器端。
还是命名为test.asp
<%@ Language=VBScript %>
<%
Response.Expires=-1
Response.CharSet="UTF-8"
Session.CodePage="65001"
%>
<a href="./test.asp?name=youname&number=10">Go</a>
<%
dim intnumber
dim strname
if IsEmpty(Request("name")) then
strname =""
else
strname =Request("name")
end if
if IsEmpty(Request("number")) then
intnumber =0
else
intnumber =Request("number")
end if
Response.Write("<br>")
Response.Write("You input name is:" & strname)
Response.Write("<br>")
Response.Write("Hidden number value is:" & intnumber)
%>
<a href="./test.asp?name=youname&number=10">Go</a>
该超连接指向./test.asp,就是本身,当然也可以指向其它文件,?表示开始传递的参数。
参数name赋值yourname,不同参数之间通过&连接
通过该图和上图的比较,我们可以发现通过url传递数据会在浏览器的url中显示出来,这样用户就能看到我们是如何提交数据的,当然也可以直接修改url里面的值来传递参数了。
注意:通过url传递参数,url需要进行编码,否则可能得到的是乱码。