在开发工程中,我们web.xml中要设置servlet的url时,我们必须加上“/”,代表的是服务器+工程的路径;而当我们引用使servlet在页面时,添加的映射必须带上"/工程名+/servleturl",因为这里的“/”,代表的是服务器,而没有工程的路径。在配置时,我们一定要注意。
下面是一些资料:
几个符号的含义:
'/'代表网站根目录:"/Images/SampleImage.jpg"相当于".../inetpub/wwwroot/image/SampleImage.jpg"
'~'代表应用程序根目录,~ 运算符只能为服务器控件识别,并且位于服务器代码中.不能将 ~ 运算符用于客户端元素.
'..'代表上一级目录:"/bbs/Images/SampleImage.jpg"相当于"/bbs/../bbs/Images/SampleImage.jpg"
'.'代表当前目录:"/bbs/Images/SampleImage.jpg"相当于"/bbs/Images/./././SampleImage.jpg"
以img元素为例:
(*)绝对 URL 路径.如果引用其他位置(例如外部网站)中的资源,则绝对 URL 路径非常有用.
<img src="http://www.example.com/MyApplication/Images/SampleImage.jpg" />
(*)网站根目录相对路径,此路径将根据网站根目录(而非应用程序根目录)进行解析.如果将跨应用程序的资源(例如图像或客户端脚本文件)保留在网站根目录下的文件夹中,则网站根目录相对路径非常有用.
一个网站的根目录是/wwwroot/,其下还可能有许多的应用程序,如bbs,此时该应用程序的根目录就是/bbs/.
此示例路径假定 Images 文件夹位于网站根目录下.
而且<img src="/Images/SampleImage.jpg" />
如果网站为 http://www.example.com/,则此路径将解析为以下形式.http://www.example.com/Images/SampleImage.jpg
如果Images文件夹在某个应用程序目录中如bbs,那么解析还是http://www.example.com/Images/SampleImage.jpg.
很明显网站根目录下没有image目录,文件找不到.此时改为:
<img src="/bbs/Images/SampleImage.jpg" />就行了!!!!!!!!!!
(*)下面是一个根据当前页面路径解析的相对路径.
<img src="Images/SampleImage.jpg" />
默认情况下,浏览器使用当前页面的 URL (应用程序根目录)作为解析相对路径的基准.但是,可以在页面中包含 HTML base 元素,以指定替代基路径.
确定当前网站的物理文件路径:
根据请求属性确定路径
下面的是HttpRequest对象的属性,这些属性帮助确定应用程序中的资源的路径.
已使用以下 URL 发出浏览器请求:http://www.example.com/MyApplication/MyPages/Default.aspx.
网站根目录的物理路径为:C:/inetpub/wwwroot/MyApplication/.
该物理路径中包含一个名为 MyPages 的文件夹.
ApplicationPath
获取当前应用程序的根目录路径,无论在该应用程序中的什么位置请求该路径.在此示例中,该属性将返回以下内容:/
CurrentExecutionFilePath
获取当前请求的虚拟路径.它与 FilePath 属性的不同之处在于,如果请求已在服务器代码中被重定向,则 CurrentExecutionFilePath 就是正确的.在此示例中,该属性将返回以下内容:/MyApplication/MyPages/Default.aspx
如果作为对 Transfer 或 Execute 进行调用的结果,获取正在运行的代码中的属性,则路径将反映该代码的位置.
FilePath
获取当前请求的虚拟路径.在此示例中,该属性将返回以下内容:/MyApplication/MyPages/Default.aspx
与 CurrentExecutionFilePath 属性不同的是,FilePath 不反映服务器端的传输.
Path
获取当前请求的虚拟路径.在此示例中,该属性将返回以下内容:/MyApplication/MyPages/default.aspx
PhysicalApplicationPath
获取当前正在执行的应用程序的根目录的物理文件系统路径.在此示例中,该属性将返回以下内容:C:/inetpub/wwwroot/
PhysicalPath
获取与请求的 URL 相对应的物理文件系统路径.在此示例中,该属性将返回以下内容:C:/inetpub/wwwroot/MyApplication/MyPages/default.aspx
使用 MapPath 方法
MapPath 方法返回传递给该方法的虚拟路径的完整物理路径.例如,以下代码返回网站根目录的文件路径:
String rootPath = Server.MapPath("~");
String rootPath = Server.MapPath("~/dir");
String rootPath = Server.MapPath("~/dir/file.ext");