图4-25 显示Server.MapPath的结果 (1) 示例网页代码的功能 处理这个过程的代码是与前面在相似的示例文件中已经使用过的代码十分相似。 在该页面顶部的asp脚本区域中,对单击的按钮的名字进行检查。在这种情况下,该按钮的名字将是cmdMapPath,简单地把相匹配的文本框中的值txtMapPath传送给Server.MapPath方法,并显示得到的结果: If Len(Request.Form(“cmdMapPath”)) Then StrValue = Request.Form(“txtMapPath”) Response.Write “<B>Results:</B><BR>Server.MapPath (“ & QUOT & strValue _ & QUOT & “ ) returned <B>” & QUOT & Server.MapPath(strValue) _ & QUOT & “</B><HR>” End If (2) MapPath和虚拟应用程序目录 注意,MapPath方法为/iishelp/default.htm文件获取的结果在Web服务器目录外,并在主winnt目录的help目录中。这清楚地证明了MapPath方法是非常有用的。 对于在缺省的Web网站目录中的文件,其URL的路径部分与物理路径通常是相同的。例如,一个文件存储在Web服务器上: c:/InetPub/WWWRoot/yourfiles/thisfile.asp 如果安装时已经在缺省目录中安装了的Web根目录,则URL如下: http://yoursite.com/yourfiles/thisfile.asp 然而,IIS Help文件安装在缺省Web网站目录外的一个虚拟目录中,所以用于对其进行访问的URL和物理路径之间没有直接的关联。只有通过使用Server.MapPath方法才能获取真实的物理路径。
4.3..6 使用Server对象格式化数据 当前面讨论演示SSI指令的网页的代码时,碰巧遇到了使用HTML的一个老问题。在一个HTML网页中如何显示HTML代码?如果“照现在的样子”使用,也就是在相应的位置上使用所有的HTML字符,会被浏览器当作HTML解释和执行。这样当下列内容在浏览器中显示时: This is the syntax of a <TABLE> element: 将不会显示文本<TABLE>,因为浏览器将其作为一个数据表的一个开始标记,并照此来执行。为了避免这种情况,必须把在HTML中非法或无效的所有字符转换到等价的HTML字符实体(character entity)。多数常见的字符如表4-5所示: 表4-5 字符与等价的HTML实体的关系 字 符 等价的HTML实体 字 符 等价的HTML实体