ASP.NET中Server.MapPath() 和Request.MapPath()使用
来源:互联网 发布:智多星软件多少钱 编辑:程序博客网 时间:2024/05/22 08:06
一、
ASP.NET中Server.MapPath() 和 Request.MapPath()使用区别:
Server.MapPath(string) :是将相对于当前调用文件的文件(或目录)映射为物理路径;
Request.MapPath(string) :是将string虚拟路径映射为物理路径(asp中Request无此方法)
Server.MapPath(string) 中string 可以用“../”方式引用父目录,甚至可以将此目录跳到整个WEB目录外,如:C:/WWWROOT
目录为WEB根目录,在根目录文件中调用此Server.MapPath("../xyz.gif"),则可以调用WEB目录外的脚本、资源等。
Request.MapPath(string) 中的string为虚拟目录,只能相对WEB虚拟目录形式的,也不允许"../"方式调用,只能是"/","/xx"等字符串
有时候直接用Server.MapPath(string) 调用一个文件比较麻烦,因为不同的目录中调用同一个Server.MapPath(string) 函数就会得到不同的值,特殊的话,就需要通过判断本身目录层次才能获取正确的地址,使用的Request.MapPath(string)就可以调用同一个目录文件。不用做目录判断
二、
Server.MapPath的命名空间习惯用Access的朋友都知道:ADO.NET链接Access数据库经常这么写:
strcon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("datebase/indexDB.mdb");
这里用Server.MapPath得到应用程序的物理路径!如果你是在当前web项目下的一个类中如上写链接语句,可能会提示找不到Server、因为 Server的完整路径是System.Web.HttpContext.Current.Server。using System.Web是显然不够的;但是在从内置Page类继承的类中可以直接写Server.MapPath"data.mdb"),应该是因为 Page类已经包含了这些类路径。
如果你从Page类继承的类中执行这条语句,才可以简单地使用
DataBase = Server.MapPath("data.mdb");
否则写全命名空间:System.Web.HttpContext.Current.Server.MapPath();
注意:如果是在一个类库下的一个类中、要先添加引入using System.Web;因为新建一个类库时默认是不引入using System.Web的!
已注:在类文件中,对server以及Request对象中无法直接访问,要想访问,必须使用如System.Web.HttpContext.Current.Server.MapPath();System.Web.HttpContext.Current.Request;
的方式进行 。
三、
ASP.NET中Server.MapPath()、Request.MapPath() 和 Request.PhysicalApplicationPath()
Response.Write(Request.PhysicalApplicationPath.ToString());
Response.Write(Server.MapPath("mydb.mdb").ToString());
经过实验,我发现:Request.PhysicalApplicationPath.ToString()是你的网站所在的目录 ,比如我的就是F:/fq/htdocs/,而这个地址不管你的网页在哪个子文件夹里,都是一样的。
Server.MapPath("mydb.mdb").ToString() 是你的网页所在的文件夹再加上参数字符串,而不管这个参数字符串是什么,存在不存在 比如我在qiye子文件夹里放了一个1/aspx文件,其中有这样一句:Response.Write(Server.MapPath("mydb.mdb").ToString());试验出来的值是:F:/fq /htdocs/qiye/mydb.mdb
另外,Server.MapPath("mydb.mdb").的参数的首部最好不要含有“/”,l因为这意味着根。 Response.Write(Server.MapPath("/mydb.mdb").ToString());试验出来的值是:c: /www_root
ASP.NET中Server.MapPath() 和 Request.MapPath()使用区别:
Server.MapPath(string) :是将相对于当前调用文件的文件(或目录)映射为物理路径;
Request.MapPath(string) :是将string虚拟路径映射为物理路径(为当前请求将请求的URL中的虚拟路径映射到服务器上的物理路径。)
Server.MapPath(string) 中string 可以用“../”方式引用父目录,甚至可以将此目录跳到整个WEB目录外,如:C:/WWWROOT
目录为WEB根目录,在根目录文件中调用此Server.MapPath("../xyz.gif"),则可以调用WEB目录外的脚本、资源等。
Request.MapPath(string) 中的string为虚拟目录,只能相对WEB虚拟目录形式的,也不允许"../"方式调用,只能是"/","/xx"等字符串
有时候直接用Server.MapPath(string) 调用一个文件比较麻烦,因为不同的目录中调用同一个Server.MapPath(string) 函数就会得到不同的值,
特殊的话,就需要通过判断本身目录层次才能获取正确的地址,使用的Request.MapPath(string)就可以调用同一个目录文件。不用做目录判断
1、Server.MapPath("/") 应用程序根目录所在的位置 如 C:/Inetpub/wwwroot/
2、Server.MapPath("./") 表示所在页面的当前目录
注:等价于Server.MapPath("") 返回 Server.MapPath("") 所在页面的物理文件路径
3、Server.MapPath("../")表示上一级目录
4、Server.MapPath("~/")表示当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置 如 C:/Inetpub/wwwroot/Example/
- ASP.NET中Server.MapPath() 和Request.MapPath()使用
- ASP.NET中Server.MapPath() 和Request.MapPath()使用
- ASP.NET中Server.MapPath() 和 Request.MapPath()使用区别(于三份资料中提取)
- Server.MapPath() 和 Request.MapPath()使用区别
- ASP.NET中Request.ApplicationPath、Request.FilePath、Request.Path、.Request.MapPath、Server.MapPath的区别
- ASP.NET中Request.ApplicationPath、Request.FilePath、Request.Path、.Request.MapPath、Server.MapPath的区别
- asp.net中Server.MapPath的使用
- ASP.NET中Server.MapPath
- Server.MapPath和Request.MapPath()的用法
- Server.MapPath和Request.MapPath()的用法
- mappath使用介绍,Server.mappath和Request.mappath 有什么区别、及使用方法
- ASP.NET在类中引用Application和Server.MapPath
- request.mappath , request.physicalapplicationpath and Server.mappath
- ASP.NET中Server.MapPath的几种用法
- ASP.NET中Server.MapPath的几种用法
- asp.net .ashx,cs文件使用server.mappath解决方法
- asp.net .ashx,cs文件使用server.mappath解决方法
- asp.net .ashx,cs文件使用server.mappath解决方法
- 购物车(一)
- JSP中九大隐式对象
- 二分图的最小点覆盖跟最小点权覆盖
- AR
- Asp.net控制TextBox只能输入数字
- ASP.NET中Server.MapPath() 和Request.MapPath()使用
- 分页实现以及访问量的实现
- 黑马程序员:我的黑马预习课程第一讲:数组
- 了解dt.jar
- 动态网页与静态网页各有各的特点
- 上百部BBC经典纪录片在线欣赏
- Xcode 4.2 中的Automatic Reference Counting (ARC)
- jsp实现记录访问次数实例
- sicily 1194