ASP传递参数方法汇总

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

asp传参数的方法
dadaV2016.02.15
asp传参数的方法常用的有三种:
1、用户端用http方式传参数到服务器(FORM表单方式)
用表单的action属性,将参数传递到接收的文件中。

<form action="test.asp" method="get">
//test.asp 为接收参数的页面,method为传送方式,分post方式和get方式。

2、用链接传递参数 <a href='test.asp?name=bansi&sex=man'> 会员</a>
href后面的属性首先跟的是一个提交到后台处理的asp文件,"?"后面跟的是参数,参数值是在"="后面。

当多个参数时,使用"&"将参数隔开。

这里就有两个参数name与sex,参数值分别为bansi与man。

比如 <a href="test.asp?action=check<%=rs("字段名")%>">
使用mid(request("action"),1,5)获取 check
使用mid(request(action),5) 获取<%=rs("字段名")%>
3、使用<input>标签方式设置为隐藏方式传递一个参数
<input type="hidden" name="id" value="<%=request.querystring("id")%>">
下一页面使用 request.form("id")获取id参数
asp的参数传递和获取
设计交互式网页离不开接收用户的输入信息,也即参数传递和获取。

给ASP传递参数的方法有两种:即FORM表单方式和超级链接方式,相应地,ASP有不同的获取方式。

1 FORM表单方式
FORM表单的基本格式如下[9]:
<Form Action="url_value" Method="method_value">
……
<Input Type="submit"><Input Type="reset">
</Form>
其中的省略号代表FORM表单提供的多种输入形式,如单行文本(Text)、口令(Password)、
复选钮(Check Box)、单选钮(Radio Box)、隐藏输入(Hidden)、多行文本输入(Textarea)、菜单项(Select)等,请参考有关资料。

对FORM表单中的两个最重要参数解释如下:
ACTION:指定服务端主机上处理该FORM输入的程序的完整URL值。

METHOD:指定传递FORM输入数据的获取方式,有POST和GET两种方法。

其中的METHOD的属性对应ASP不同的获取数据方法。

下面仅以单行文本(Text)输入为例,解释ASP获取参数的方法。

[例4]
<Form Action="PostMethod_input.asp" Method="post">
<input type="text" name="postmethod_input" size="50">
<Input Type="submit"><Input Type="reset">
</Form>
在PostMethod_input.asp中用如下的语句来获取postmethod_input的值:
<%
input=Request("postmethod_input")
%>
[例5]
<Form Action="GetMethod_input.asp" Method="Get">
<input type="text" name="getmethod_input" size="50">
<Input Type="submit"><Input Type="reset">
</Form>
在GetMethod_input.asp中用如下的语句来获取getmethod_input的值:
<%
input=Request.QueryString ("getmethod_input")
%>
事实上,ASP并没有严格区分这两种方式,可以混用。

建议在FORM表单中使用POST方法,这样浏览器的URL栏显得整洁。

2 超级链接方式
ASP使用超级链接传递参数通过“?Parameter=Value”对实现,多对参数用"&"连接,其格式如下:
Test.asp?p1=v1&p2=v2
在Test.asp中接收参数内容的方法是,使用ASP的Server对象的Request.Querystring 方法,具体格式是:
<%
p1= Request.Querystring("v1")
p2= Request.Querystring("v2")
%>
?/P>
web页面间的数据传递方式
基于web的动态网页设计必会涉及到页面间的数据传递,文章探讨了asp设计中常用的web页面间的数据传递方式,分析各种数据传递方式的使用方法、使用场合及优缺点,其都是设计阶段选择数据传递方式考虑的关键。

往往使用动态网页技术制作asp应用程序时一般至少拥有二个或二个以上的web页面,这时就得考虑在多个web页面间传递数据的处理工作。

而asp应用程序的各个页面类似于windows应用程序的form窗体,windows应用程序各form间数据传递可以通过定义全局变量等方法来实现。

网页间的数据传递有多种不同的可使用方式,而web页面间的数据传递方式选择是否恰当对系统设计及运行的合理性与安全性起到举足轻重的作用。

1、url方式
url方式是实现web间数据传递最基本的方法,操作简单,可很方便地实现不同web页面间的数据传递,但其安全性比较差。

将要传递的数据附加在网页地址(url)后面进行传递。

如:/testweb?username=liming,其中?后面所跟着的字符串便是传递的数据,=前的是变量名,=后面是数值,可以使用request对象来获取传递的数据。

如:request(“username”)。

这种方法在传递数据过程中其数据内容在url栏中是显示的,用户能看到提交的内容。

2、form方式
通过在网页上制作表单交互区域,用户在浏览器端输入数据,然后通过form提交到服务器,在提交后的接受form数据的页面里就可以接收到相应数据,即form的action页面中可以使用request对象来接收所传递的数据。

如:
发送页面:
<form name=“formtest” action=“targetweb.asp”>
<input name=“testtext” type=“text”value=“”>
<input name=“testbutton” type =“submit”value =“提交”>
</form>
接收页面:request(“testtext”)
利用form页面的文本框来接收用户数据的输入,通过submit按钮提交后在targetweb 页面中使用request来接收数据。

3、cookie方式
cookie是在浏览页面时web服务器在浏览器端所写入的一些小文件,cookie是存放在浏览器端本机磁盘上,而不是存放在服务端的。

可以在发送数据时写入cookie,接收时读取cookie完成数据在web页面间的传送。

如:
发送页面:response.cookies(“cookiename”)(“username”)=“liming”
接收页面:request.cookie(“cookiename”)(“username”)
在发送页面中对cookie变量赋值,接收页面中取cookie变量的值就是所传递的数据。

4、application对象
application对象是用来记录整个网站信息的,是记录不同浏览器端共享的变量,无论有几个浏览者同时存取网页,都只会产生一个application对象实例。

用户可以通过定义application整站共享变量来实现网页间的数据传递。

其定义方法是:application(“变量名”)=数值
如:application(“usrname”)=liming
application对象所定义的变量对于所有浏览端都是可见的,所以其使用场合是所有浏览端共享的全局数据传递。

5、session对象
session对象是用来记录浏览器端的变量,是个别浏览器端专用的变量,对于每一个浏览器访问时都会自动产生一个seseion对象,该对象提供一个存储场所,用来存储仅仅对该访问者在会话的活动期间打开的网页可用的变量和对象。

这样就用可以用来在web间传递专对单个浏览器端使用的数据。

其定义方法:session(“变量名”)=数值
如:session(“usename”)=liming
session对象所定义的变量只是浏览器端的专用变量,所以适用于局部会话间的网页数
据传递。

6、结束语
上述介绍的是网页间数据传递的常用方法,各有千秋。

其中url方式和form方式实现方法简单,可实现网页间的简单数据传递,一般为字符串类型,其特点是安全性差,而且必须是连续访问两页面间数据传递。

cookie只能存放string类型的数据,如果想要存放更为复杂的数据类型,那么必须先将其转换为string类型。

application对象和session对象操作相对复杂些,浏览量非常大的网页使用时应适量,而且使用结束后尽量清除,否则大量使用有可能会导致服务器的瘫痪。

session变量的安全性较高,可传递专用浏览端数据。

具体应用决定了数据传递方式的选择,合理数据传递方式选择是web页面的设计中的关键考虑因素。

asp传递参数的几种方式
把下列代码分别加入a.asp和b.asp的<body></body>中,点提交,就可以将a.asp文本框的内容传给b.asp并显示出来
a.ASP
<form action="B.asp" method="get">
<input name="ABC" type="text" />
<input name="" type="button" onClick="submit()" value="提交" />
</form>
B.asp
<%
Response.Write(Trim(Request.QueryString("ABC")))
%>
第一种是GET传值,就是网页上通常看到的 1.asp?name=2
然后你在第二个页面使用 request.querystring("name")获取到地址栏的值
第二种是POST传值,你也可以在表单中添加一个隐藏域或者文本域之类的。

比如 input type="hidden" value="<%=rs("name")%>"
表单提交到2.asp后在2.asp页面使用request.form("name")获取到表单的name
总结ASP传递参数的一些方法:
1.用户端用http信息数据传送到服务器
在表单的action属性设置为提交到的asp文件。

<form action="test.asp" method="get">
method= get:使用“输入数据= Request.QueryString("字段名")",将附加于URL的数据取出。

method= post:使用“输入数据=Request.Forml"(字段名")",读取HTTP信息数据字段。

这个方法比较常用,并且是每次需要asp后台处理都要新建一个asp文件。

但这样做会增加了文件的数量。

招聘网里面N多asp文件,看的眼花!!!如果是直接将action的属性设置为本身的文件,就在一个文件中处理也行的。

2.使用连接传递参数 <a href='test.asp?name=bansi&sex=man' >会员</a>
href后面的属性首先跟的是一个提交到后台处理的asp文件,"?"后面跟的是参数,参数值是在"="后面。

当多个参数时,使用"&"将参数隔开。

这里就有两个参数name与sex,参数值分别为bansi与man.这个东东比较好用,比如说你将会员的名字数据读出来,名字加上一个连接,点开连接就能看到会员详细资料。

那么就需要在连接中传递一个id参数(其他参数也行,只要能唯一地区别会员),这样一打开这个连接就能根据传递的这个id属性判断你想获得哪个会员的详细资料。

使用这个方法获取参数,不仅能传递一个参数,还可以传递多个参数。

使用一个mid函数可以达到了提取两个参数的效果。

比如 <a href="test.asp?action=check<%=rs("自段名")%>">
使用mid(request("action"),1,5)获取 check
使用mid(request(action),5) 获取<%=rs("字段名")%>
3.使用<input>标签方式设置为隐藏方式传递一个参数
<input type="hidden" name="id" value="<%=request.querystring("id")%>">
下一页面使用 request.form("id")获取id参数
如果你实用2的方式,连接中带有一个传递的参数,想要达到的效果是,点了连接以后进入该会员的编辑资料状态。

编辑完后点提交就更新该会员的资料。

那么编辑完成后,到底是保存那个会员的资料呢?读取会员详细资料的时候是靠id来区分,那么保存也会想到用id。

但需要在编辑页面以<input>方式去传递这个id参数。

会员姓名页面(传递id)→会员编辑页面(获取id以区分打开是我们单击连接的那个会员)
→会员保存页(需要根据前面的id来区别更新该会员的资料)
这种方法比较死,因为每一后台处理都要一个新的asp文件,假如在编辑页面直接是将action指向自身文件,在一个文件里就处理完,就不需要用<input>传递参数了,总共传一次参数就搞定了。

asp传递参数常见例子
1、链接传递
<a href=delete.asp?name=<%=Request.QueryString("name")%>>确认删除</a>
<a href=bbs.ASP?title=服务经验交流&db=bbs&rightsfile=bbs.txt class="news">服务经验交流</a>
<a href=edit.asp?id=<%=id%>&db=<%=db%>&title=<%=title%>&rightsfile=<%=rightsfile%>>编辑</a>
<a href=edit.asp?dlqy=<%=rs("代理区域")%>&rq=<%=rs("下单日期")%>>编辑</a>
<% response.write " 作者:匿名<a href=disp.asp?id="&rs("id")& "&db="&db&" &title="&title&"> 帖子主题:"&rs("topic")&"</a>"&rs("time")&" "%>
<%Response.Redirect
"bbs.asp?id="&id&"&db="&db&"&title="&title&"&rightsfile="&rightsfile&""%>
2、表单传递
<%name=Request.QueryString("name")
<form action=modified.asp?name=<%=name%> method=post></form>
3、数据库传递
db=Request.QueryString("db")
set rs=server.createobject("adodb.recordset")
rs.open "SELECT * FROM "&db&" where id="&id,Conn,1,1
rs1.Open "delete from "&db&" where id="&id,conn,1,1
rs2.open "update "&db&" set answer=answer-1 where id=" & rs("topid"),conn,1,1
4、输出传递
Response.Write ""&rs("topic")&""
Response.Redirect "bbs.asp?db="&db&"&title="&title&"&rightsfile="&rightsfile response.redirect "Admin.asp?Temp=删除成功!ID号为"&ID
5、conn=session("conn")
rs.Open "update userinfo_pbyy set 姓名
='"&Request.Form("name")&"',password='"&Request.Form("pass")&"',userrights='"&Request.Form("rights" )&"',userid="&Request.Form("id")&" where 姓名='"&nametemp&"'",conn,1,1
6、session值的定义与使用
<%name=Request.Form("username")
pass=Request.Form("password")
if name="administrator" and pass="bbkav31" then
session("pass")="1"
set conn=server.createobject("adodb.connection")
set rs=server.createobject("adodb.recordset")
DBPath = Server.MapPath("..\dbacess\yjkuop.mdb")
conn.Open "Provider=SQLOLEDB.1;Password=test;Persist Security Info=True;User ID=sa;Initial Catalog=test;Data Source=test"
session("conn")=conn
end if
Response.Redirect "admin.asp"
%>
使用方法:
if session("pass")="1" then
Response.Redirect("xsdf.asp")
else
Response.Redirect "error.htm"
end if
%>。

相关文档
最新文档