[摘要]%7C & %26 %7D ( %28 + %2B ) %29 < %3C / %2F = %3D : %3A > %3E ; %3B Chr(10) 忽略 [[/TD] %5...
%7C
&
%26
}
%7D
(
%28
+
%2B
)
%29
<
%3C
/
%2F
=
%3D
:
%3A
>
%3E
;
%3B
Chr(10)
忽略
[[/TD]
%5B
Chr(13) [TD]
%0D
4. Server对象的URLEncode方法
Server对象提供了可以用来把任意字符串转换成相应的合法HTTP URL的方法。可以利用示例网页对这个名为URLEncode的方法进行练习,如图4-29所示:
图4-29 使用URLEncode方法的屏幕
这里,输入的值作为URL是非法的,它包含了空格和ANSI代码大于126的字符。对这个值,使用URLEncode方法的结果是所有的空格被替换成一个加号,版权符号被替换为 %A9,如图4-30所示:
图4-30 使用URLEncode方法的结果
(1) 示例网页代码的功能
在示例网页中,处理这个功能的代码非常简单,仅仅检查是否单击了URLEncode方法对应的按钮,如果单击了,把对应的文本框中的值传递给Server.URLEncode方法并显示结果:
If Len(Request.Form(“cmdURLEncode”)) Then
strValue = Request.Form(“txtURLEncode”)
Response.Write “<B>Results:</B><BR>Server.URLEncode (“ & QUOT & strValue _
& QUOT & “) returned <B>” & QUOT & Server.URLEncode(strValue) _
& QUOT & “</B><HR>”
End If
(2) 对HTML元素和其他链接使用URLEncode
URLEncode方法更普遍地用于把<A>元素或其他链接的值写到ASP网页。例如,如果在查询字符串中建立了一系列的链接,这;些链接包含来自一个数据库的值,首先应该对这个字符串使用Server.URLEncode方法:
<%
strValue = Request.Form(“txtSomeValue”)
‘Create the full URL for the link as an HTTP-legal string
strURL = http://mysite.com/books.asp?title= & Server.URLEncode(“strValue”)
‘Make sure we don’t have any non-legal HTML characters in the page text
strLink = Server.HTMLEncode(“strValue”)
%>
…
<A HREF=”<% = strURL %>”><% = strValue %></A>
…
如果放入字符串strValue的值包含标题“Active Server Pages©”,将得到由这个代码段创建的如下所示的HTML:
<A HREF=http://mysite.com/books.asp?title=Active+Server+Pages%A9>
Active Server Pages©</A>
注意,我们不仅仅使用Server.URLEncode方法来建立一个合法的URL字符串,而且还对链接的文本使用了Server.HTMLEncode方法,以确保把所有非法的字符转换为合适的HTML等价实体。
和HTMLEncode方法一样,不用反译码ASP网页中的URL编码值。IIS自动地实现URL编码字符串的转换,该字符串在HTTP请求中转换为它们原先格式,使得它们在内置对象中是可用的。
4.4 小结
在这一章中,通过在Web服务器上发生的处理过程,讨论了为Web网页提供动态内容所涉及的一些问题。这些问题的一部分不是直接地与ASP本身相关,但对这些问题的理解,将有助于理解基本的处理工作是如何进行的。
本章介绍了IIS如何支持传统的服务器端包含指令,有一些指令可能仍然是有用的。特别是,#exec指令对执行系统命令以及集成原有的应用程序都是有用的。同时也讨论了一条特别的服务器端包含指令——#include语句,了解了在ASP网页内部使用这条命令的相关问题。
然而,ASP Server对象占了本章的大部分。它提供了在ASP网页内管理服务器端处理过程的方法。在Web服务器和ASP的正确的环境中,它可用来创建其他对象、应用程序或组件的实例。它同时也提供了一系列的方法,这些方法允许执行其他的网页或资源,以及以正确方式格式化信息,以便在ASP脚本和网页中使用。 Server对象也带来了一个新的ASP内置对象:ASPError对象,它为脚本提供较好的错误处理方法。现在可以提供“正统的”脚本错误处理,并获取有关错误的信息。
关键词:ASP 3.0高级编程(106)