编程开发 > ASP > 文章内容

在ASP中使用“Request”时应注意的问题

2010-8-17编辑:feimeimei
  在ASP中,一般人都喜爱直接使用Request来获得从上一个页面传来的参数,但是这样很容易产生混乱,导致数据不正确。
  比如,如果上一个页面(A.ASP)中有一个文本框Input name=xxx value=1900,并且你使用B.ASP?xxx=1999来调用第二个页面的话,那么你在B.ASP中使用Request得到的参数xxx的值将是1999,而不会是你想要得到1900;若想要得到URL后面的那个xxx的值,应当使用Request.QueryString;若想要得到A.ASP中的那个xxx的值,应当使用
  Request.Form,并且那个文本框要在一个Form里面才可以。
  但是,有的时候,使用Request反而会有很好的效果,不相信?那就一同来看看下面这个例子吧。
  比如,我们要做一个关于查找记录的搜索引擎,那就至少要有两个页面:
  接受查询条件的页面和显示查询结果的页面,并且由于查询到的数据会有很多,我们需要在B.ASP对查找到的记录进行分页显示,即:
  查询参数-分页显示(刷新自己)
  ___________________
  在A.asp中有一个文本框Input type=text name=year,是用来让用户输入查询条件的,B.asp要按照传递来的参数year来显示属于那一年的所有记录。按照我们刚才讲到的那种方法,代码分别
  A.asp:
  html
  body
  form name=search method=post action=B.asp
  Input type=text name=year
  Input type=submit name=ok value=查询
  /form
  /body
  /html
  B.asp :
  %
  year=Request.Form
  %
  html
  body
  。。。。。。
  A href=B.asp?page=%=page%year=% year%下页/A
  。。。。。。
  /body
  /html
  自然,第一次提交到B.asp的时候,可以使用Request.Form得到那个条件year,但是B.asp要分页,也就是说他要刷新自己,以便显示全部的记录,但是因为B.asp中并没有这个文本框year,所以使用Request.Form得到的将会是一个空值,这时候就是Request显示威力的时候了,可以这样修改B.asp :
  html
  body
  。。。。。。
  A href=B.asp?page=%=page%year=%request%下页/A
  。。。。。。
  /body
  /html
  这样,当第一次调用B.asp的时候,获得的是A.asp中那个文本框中的值(用户输入的);翻页的时候调用B.asp获得的是“B.asp?...year=?”里面的值,也就是URL中的值。
  所以说凡事都有它的两面性,Request也不例外哦。
  (以上程序均在WinNT4.0英文版,IIS4.0,IE4.x/IE5.x下测试通过)
如何正确显示数据库中的图片

热点推荐

登录注册
触屏版电脑版网站地图