ASP中Cookies集合使用方法详解(2)

作者:CODEOF 时间:2007-09-14 10:16:00 

Form和QueryString的差异
  了解了访问各种ASP集合的技术以后,需要解决另一个问题是:Form和QueryString集合之间的差异是什么?假如准备使用ASP,毫无疑问应该清楚这种差异,但需要参考HTTP工作方式来重新认识,理解它们。
  通过HTTP从Web服务器请求页面或其他资源,有两个通用的方法。可使用GET方法直接获得资源,也可使用POST把值传给相应资源。GET方法是缺省的,可以看一下本章前面的一个HTTP请求的实例:

  7/8/99 10:27:16 Sent GET /Store/Download.asp HTTP/1.1 


  假如把一个或多个成对的名称/值附在请求页面的URL后,就变成请求的查询字符串,且在QueryString集合中提供给ASP页面。单击Web页面、Email消息或其它文档的超链接,或在浏览器的地址栏中输入地址并按回车,或单击浏览器中的Links或Favorites按钮,所有这些都要使用GET方法。
  因此,对这些动作中传递值给ASP的唯一方法是通过QueryString集合,把值附在URL后。
  出现在Request.QueryString集合中并被访问的值,与前面看到的Form集合实例中的工作方式相同。URL和查询字符串的结合:

  http://mysite.com/process_page.asp?FirstName=Priscilla&LastName=Descartes 


  可以采用如下方式访问在QueryString集合中提供的值:

strFirstName = Request.QueryString(“FirstName”) ‘Return “Priscilla” 
strLastName = Request.QueryString(“LastName”) ‘Return “Descartes” 
strRaw = Request.QueryString  
‘Return “FirstName=Priscilla&LastName=Descartes” 


  窗体的GET和POST方法
  在一个页面内使用<FORM>段时,可以设置打开的FORM标记的METHOD属性值为“GET”或“POST”,缺省值为“GET”。假如使用“GET”或省略其属性,浏览器将该值绑定在页面所有控件上,成为一个查询字符串,且附在被请求页面的URL上。
  当这个请求到达Web服务器时,其值由ASP的Request.QueryString集合提供。然而,假如设置METHOD属性为“POST”,浏览器将值包装进发送服务器的HTTP报头中,通过Request.Form集合提供给ASP。
  通过来说,可以在所有的HTML窗体中使用POST方法。然而,浏览器或服务器的URL字符串长度存在一定的限制。因此,附有长的字符串可能会引起溢出和某些字符串的字符被截掉。同时,查询字符串出现在浏览器的地址栏和所有的保存的链接和收藏夹中。不仅如此,还显露了通过Web服务器时在HTTP请求中不想显示的值,它也可能出现你的服务器和其他路由服务器的日志文件中。在HTTP请求报头中的值很少是可见的,并且不出现在日志文件中。
  使用POST方法需要注意的小问题是,当用户重新下载<FORM>时,窗体的值将不再保留,其值为空且必须重新输入。然而,当附在URL上时,其值被存储为一个链接,将被保留,因此将出现在所有的URL与字符串结合的请求中,这或许是个优点也可能是个缺点,这根据应用而定(一些浏览器在客户端上能够在一定范围内自动保留一个页面上的值)。 
  另一点是URL与查询字符串的结合体不能包含任何空格或其他非法字符,否则的话,Navigator和一些其他的浏览器将出现问题。非法字符是那些用来分隔URL和查询字符串的部分,例如“/”、“:”、“?”和“&”(IE能够自动将空格转换为正确的格式——加号“+”,但其他的非法字符不能处理)

标签:cookies,asp
0
投稿

猜你喜欢

  • python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法

    2023-04-03 04:19:06
  • go按行读取文件的三种实现方式汇总

    2024-04-25 15:08:15
  • 使用python批量修改XML文件中图像的depth值

    2023-03-05 12:59:06
  • django上传图片并生成缩略图方法示例

    2022-08-12 01:45:53
  • 在数据库‘master’中拒绝CREATE DATABASE权限问题的解决方法

    2024-01-12 22:47:53
  • Python中的MongoDB基本操作:连接、查询实例

    2021-12-21 07:38:06
  • 如何把数组转换成字符串?

    2009-11-06 13:49:00
  • Javascript DOM 编程实例讲解--仿LightBox效果提示框

    2008-05-01 13:25:00
  • 详解JDBC对Mysql utf8mb4字符集的处理

    2024-01-14 12:01:43
  • 对比国内门户网站对Flash激活限制的处理

    2007-08-23 11:29:00
  • javascript中声明函数的方法及调用函数的返回值

    2024-03-21 23:49:04
  • Python使用scrapy采集数据时为每个请求随机分配user-agent的方法

    2023-02-08 15:20:31
  • asp如何防止计数器刷新计数?

    2009-11-22 19:19:00
  • keras CNN卷积核可视化,热度图教程

    2021-03-15 05:06:15
  • Anaconda下配置python+opencv+contribx的实例讲解

    2021-04-10 21:28:33
  • php实现上传图片保存到数据库的方法

    2024-05-09 14:48:35
  • 网站设计输入了些什么?

    2008-04-01 09:30:00
  • Python抓取京东图书评论数据

    2023-10-16 09:26:37
  • python实现图片转字符画

    2021-02-13 22:58:33
  • MySQL8.0.26安装与卸载的完整步骤记录

    2024-01-13 08:56:48
  • asp之家 网络编程 m.aspxhome.com