当前位置: 首页 > 编程日记 > 正文

asp.net获取网站路径

网站在服务器磁盘上的物理路径: HttpRuntime.AppDomainAppPath
虚拟程序路径: HttpRuntime.AppDomainAppVirtualPath


任何于Request/HttpContext.Current等相关的方法, 都只能在有请求上下文或者页面时使用. 即在无请求上下文时,HttpContext.Current为null. 而上面提到的方法一直可用.

对于全局Cache对象的访问亦然.

==================================================================================

示例:输出asp.net 网站路径。

private void responseHtml()
...{
System.Text.StringBuilder sb
= new System.Text.StringBuilder();
sb.Append(
string.Format("当前时间: {0}", Server.HtmlEncode(DateTime.Now.ToString())));
sb.Append(
"<br />");
sb.Append(
string.Format("当前请求的虚拟路径: {0}",Server.HtmlEncode(Request.CurrentExecutionFilePath)));
sb.Append(
"<br />");
sb.Append(
string.Format("获取当前应用程序的根目录路径: {0}", Server.HtmlEncode(Request.ApplicationPath)));
sb.Append(
"<br />");
sb.Append(
string.Format("当前请求的虚拟路径: {0}",Server.HtmlEncode(Request.FilePath)));
sb.Append(
"<br />");
sb.Append(
string.Format("当前请求的虚拟路径: {0}",Server.HtmlEncode(Request.Path)));
sb.Append(
"<br />");
sb.Append(
string.Format("获取当前正在执行的应用程序的根目录的物理文件系统路径: {0}", Server.HtmlEncode(Request.PhysicalApplicationPath)));
sb.Append(
"<br />");
sb.Append(
string.Format("获取与请求的 URL 相对应的物理文件系统路径: {0}", Server.HtmlEncode(Request.PhysicalApplicationPath)));
sb.Append(
"<br />");
Response.Write(sb.ToString());
}

}


输出:当前时间: 2007-08-30 11:03:49
当前请求的虚拟路径: /aDirectory/Sample/responseHtml.aspx
获取当前应用程序的根目录路径: /aDirectory
当前请求的虚拟路径: /aDirectory/Sample/responseHtml.aspx
当前请求的虚拟路径: /aDirectory/Sample/responseHtml.aspx
获取当前正在执行的应用程序的根目录的物理文件系统路径: E:\Visual Studio 2005\
获取与请求的 URL 相对应的物理文件系统路径: E:\Visual Studio 2005\\aDirectory\

在ASP.NET编程中经常需要用Request获取url的有关信息.
测试的url地址是http://www.test.com/testweb/default.aspx, 结果如下:

Request.ApplicationPath: /testweb
Request.CurrentExecutionFilePath: /testweb/default.aspx
Request.FilePath: /testweb/default.aspx
Request.Path: /testweb/default.aspx
Request.PathInfo:
Request.PhysicalApplicationPath: E:\WWW\testweb\
Request.PhysicalPath: E:\WWW\testweb\default.aspx
Request.RawUrl: /testweb/default.aspx
Request.Url.AbsolutePath: /testweb/default.aspx
Request.Url.AbsoluteUri: http://www.test.com/testweb/default.aspx
Request.Url.Host: www.test.com
Request.Url.LocalPath: /testweb/default.aspx

当url中带参数时可以使用:
HttpContext.Current.Request.Url.PathAndQuery.ToString()//

本页地址: Request.URL;


上页地址:
Request.UrlReferrer
Request.ServerViables["http_referer"]
Request.RawUrl
Request.RawUrl.QueryAndPath
System.IO.Path.GetFileName(Request.FilePath.ToString())

HttpRequest 类型公开了以下成员。

构造函数
名称 说明
HttpRequest 基础结构。初始化 HttpRequest 对象。
页首
方法
名称 说明
BinaryRead 执行对当前输入流进行指定字节数的二进制读取。
Equals 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。)
Finalize 允许 Object 在“垃圾回收”回收 Object 之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
GetType 获取当前实例的 Type。 (继承自 Object。)
MapImageCoordinates 将传入图像字段窗体参数映射为适当的 x 坐标值和 y 坐标值。
MapPath 已重载。 为当前请求将请求的 URL 中的虚拟路径映射到服务器上的物理路径。
MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
SaveAs 将 HTTP 请求保存到磁盘。
ToString 返回表示当前 Object 的 String。 (继承自 Object。)
ValidateInput 对通过 Cookies 、Form 和 QueryString 属性访问的集合进行验证。
页首
属性
名称 说明
AcceptTypes 获取客户端支持的 MIME 接受类型的字符串数组。
AnonymousID 获取该用户的匿名标识符(如果存在)。
ApplicationPath 获取服务器上 ASP.NET 应用程序的虚拟应用程序根路径。
AppRelativeCurrentExecutionFilePath 获取应用程序根的虚拟路径,并通过对应用程序根使用波形符 (~) 表示法(例如,以“~/page.aspx”的形式)使该路径成为相对路径。
Browser 获取或设置有关正在请求的客户端的浏览器功能的信息。
ClientCertificate 获取当前请求的客户端安全证书。
ContentEncoding 获取或设置实体主体的字符集。
ContentLength 指定客户端发送的内容长度(以字节计)。
ContentType 获取或设置传入请求的 MIME 内容类型。
Cookies 获取客户端发送的 Cookie 的集合。
CurrentExecutionFilePath 获取当前请求的虚拟路径。
FilePath 获取当前请求的虚拟路径。
Files 获取采用多部分 MIME 格式的由客户端上载的文件的集合。
Filter 获取或设置在读取当前输入流时要使用的筛选器。
Form 获取窗体变量集合。
Headers 获取 HTTP 头集合。
HttpMethod 获取客户端使用的 HTTP 数据传输方法(如 GET、POST 或 HEAD)。
InputStream 获取传入的 HTTP 实体主体的内容。
IsAuthenticated 获取一个值,该值指示是否验证了请求。
IsLocal 获取一个值,该值指示该请求是否来自本地计算机。
IsSecureConnection 获取一个值,该值指示 HTTP 连接是否使用安全套接字(即 HTTPS)。
Item 从 Cookies、Form、QueryString 或 ServerVariables 集合中获取指定的对象。
LogonUserIdentity 获取当前用户的 WindowsIdentity 类型。
Params 获取 QueryString、Form、ServerVariables 和 Cookies 项的组合集合。
Path 获取当前请求的虚拟路径。
PathInfo 获取具有 URL 扩展名的资源的附加路径信息。
PhysicalApplicationPath 获取当前正在执行的服务器应用程序的根目录的物理文件系统路径。
PhysicalPath 获取与请求的 URL 相对应的物理文件系统路径。
QueryString 获取 HTTP 查询字符串变量集合。
RawUrl 获取当前请求的原始 URL。
RequestType 获取或设置客户端使用的 HTTP 数据传输方法(GET 或 POST)。
ServerVariables 获取 Web 服务器变量的集合。
TotalBytes 获取当前输入流中的字节数。
Url 获取有关当前请求的 URL 的信息。
UrlReferrer 获取有关客户端上次请求的 URL 的信息,该请求链接到当前的 URL。
UserAgent 获取客户端浏览器的原始用户代理信息。
UserHostAddress 获取远程客户端的 IP 主机地址。
UserHostName 获取远程客户端的 DNS 名称。
UserLanguages 获取客户端语言首选项的排序字符串数组。

1.Request.ApplicationPath->当前应用的目录
楼主没有接触过jsp吧,如果接触过jsp就会非常清楚,ApplicationPath指的是当前的application(应用程序)的目录
对应的--例如我的服务器上有两个web应用域名都是MySite.com 一个映射到目录MySite.com/1/ 另一个影射到 http://MySite.com/2/
那么 MySite.com/1/就是第一个应用的ApplicationPath 同理 MySite.com/2/就是第二个应用的ApplicationPath

2.Request.FilePath->对应于iis的虚拟目录
如 URL http://MySite.com/1/index.html/pathinfo
FilePath = /1/index.html

3.Request.Path->当前请求的虚拟路径
Path 是 FilePath 和 PathInfo 尾部的串联。例如 URL http://MySite.com/1/index.html/pathinfo
那么Path = /1/index.html/pathinfo

4.Request.MapPath(string url)->将url映射为iis上的虚拟目录
这个目录都是相对于application的根目录的
于Server.MapPath相比,不会包含类似c:/这样的路径
可以理解为是相对路径(对比的Server.MapPath就是绝对路径)

5.Server.MapPath(string url)->将url映射为服务器上的物理路径
例如 http://MySite.com/1/index.html 假设你的应用程序在c:/iis/MySite中
那么 就是 c:/iis/MySite/1/index.html

Requst.FilePath获取当前请求的虚拟路径。FilePath 属性不包含 PathInfo 尾部。例如,对于 URL http://www.contoso.com/virdir/page.html/tail,FilePath 值为 /virdir/page.html。

===============================================================================================================================

Request.Path 获取当前请求的虚拟路径。Path 是 FilePath 和 PathInfo 尾部的串联。例如,对于 URL http://www.contoso.com/virdir/page.html/tail,Path 为 /virdir/page.html/tail。

===============================================================================================================================

Request.MapPath 方法将指定的虚拟路径映射到物理路径。
下面的代码示例使用 MapPath 方法将虚拟路径转换为服务器上完全限定的物理路径。此示例包括两个部分:

.aspx 页映射路径、读取文件并显示读取操作的结果。

UpperCaseFilterStream 类,该类将通过它传递的所有字符都更改为大写。

示例的第一部分显示如何使用 MapPath 方法将虚拟路径转换为完全限定的物理路径。之后,将此物理路径传递给 StreamReader 对象,该对象包含该文件的内容。然后,调用 Write 方法,以在页面上显示文件的内容。Filter 属性用于将筛选器附加到响应流,该响应流使页面上显示的文本全部大写。

转载于:https://www.cnblogs.com/peipei2009/archive/2009/05/11/1454155.html

相关文章:

iOS 绘制圆角

级别&#xff1a; ★☆☆☆☆ 标签&#xff1a;「iOS切圆角」「layer圆角」「CAShapeLayer圆角」 作者&#xff1a; XsH 审校&#xff1a; QiShare团队 项目中会常有圆角&#xff08;或圆形&#xff09;显示视图的需求&#xff08;比如用户头像的显示&#xff09;&#xff0c;也…

(C++)归并排序的递归与非递归实现

递归实现 merge函数利用的是双指针技巧降低复杂度。 mergeSort函数使用了递归&#xff0c;当中先对左右序列各调用一次mergeSort&#xff0c;再对整个序列调用merge。就按照最浅层的归并的思想去理解&#xff0c;不要大脑走到哪就step in。 另外mergeSort进入递归有个left&l…

SnackbarUtilDemo【Snackbar的封装类】

版权声明&#xff1a;本文为HaiyuKing原创文章&#xff0c;转载请注明出处&#xff01; 前言 这个工具类参考的是《没时间解释了&#xff0c;快使用Snackbar!——Android Snackbar花式使用指南》&#xff0c;代码几乎一样&#xff0c;所以想要了解具体原理或者更详细信息请阅读…

java通过代理访问网络

使用代理方式连接到网络 Testpublic void t13(){String charset "utf-8" ; String proxyHost "代理地址" ; int proxyPort 1234 ; //代理端口String proxyUrsername "登陆代理服务器的用户名" ; String proxyPassword "登陆代理服务器…

poj2503 Babelfish

跟poj3349很类似的题目&#xff0c;这题还稍简单。用qsort快速排序和二分查找可以很轻松AC。以下是代码&#xff1a; Run IDUserProblemResultMemoryTimeLanguageCode LengthSubmit Time5135234zen_chou2503Accepted2356K547MSC1212B2009-05-11 20:12:26Code1 #include <std…

(C语言)一种简易记法:生成[a,b]范围内的随机整数

1. 添加头文件 #include<stdlib.h> #include<time.h> 2. 初始化随机种子 srand((unsigned)time(NULL)); 3. 确定元素个数b-a1&#xff0c;以及最小元素 printf("%d",rand()%(b-a1)a);//生成[a,b]之间的数 printf("%d",rand()%1001);//生成…

IE和火狐都支持的方法(输入用户名和密码后按下 enter 键)

在Firefox中老报"event is not defined”错误&#xff01;原因是因为在Firefox中使用了不同的事件对象模型,不同于IE Dom&#xff0c;用的是W3C Dom。 document.οnkeydοwnfunction mykeyDown(e){ //compatible IE and firefox because there is not event in fir…

数据库中存储与读取文件

if exists (select * from dbo.sysobjects where id object_id(N[dbo].[p_binaryIO]) and OBJECTPROPERTY(id, NIsProcedure) 1)drop procedure [dbo].[p_binaryIO]GO /*--bcp 实现二进制文件的导入导出 支持image,text,ntext字段的导入/导出 image适合于二进制文件,包括:Wor…

洛谷P3723 [AH2017/HNOI2017]礼物(FFT)

传送门 首先&#xff0c;两个数同时增加自然数值相当于只有其中一个数增加&#xff08;此增加量可以小于0&#xff09; 我们令$x$为当前的增加量&#xff0c;${a},{b}$分别为旋转后的两个数列&#xff0c;那么$$ans\sum_{i1}^n(a_ix-b_i)^2$$ 然后把第$i$项提出来并展开&#x…

1035 插入与归并

1. 这一题&#xff0c;首先要会插入排序和归并排序的写法。对于归并排序&#xff0c;可以用非递归sort最简便。把每一趟的结果存进二维数组。 2. 单独封装一个函数&#xff0c;比较两个一维数组是否完全一样。 3. 由于归并比插入的复杂度低&#xff0c;趟数少&#xff0c;所以…

代码设置LinearLayout的高度

问题描述我想把这个LinearLayout宽度设置成为FILL_PARENT&#xff0c;源码如下LinearLayout checkboxLinearLayout (LinearLayout) getLayoutInflater().inflate(R.layout.checkboxdoitem, null);LayoutParams params (LayoutParams) checkboxLinearLayout.getLayoutParams();…

精通Spring Boot —— 第十五篇:使用@ControllerAdvice处理异常

在Spring 3.2中&#xff0c;新增了ControllerAdvice、RestControllerAdvice 注解&#xff0c;可以用于定义ExceptionHandler、InitBinder、ModelAttribute&#xff0c;并应用到所有RequestMapping、PostMapping&#xff0c; GetMapping注解中。接下来我将通过代码展示如何使用这…

架构设计之分布式文件系统

1&#xff1a;类图 2&#xff1a;数据结构 create table TBCOFILE ( FILEID INTEGER not null, FILETIME DATE, TYPE VARCHAR2(10), USERID INTEGER, IP VARCHAR2(20), APPTYPE INTEGER default 0) 3&#xff1a;开发步骤 1&#xff1a;从数据库申…

1029 Median

1. 开始测试点3和6答案错误&#xff0c;原因是没有考虑到&#xff0c;给的两个数列有可能长度相差很大&#xff0c;某个数列还没到中位数&#xff0c;就结束了。 2. 这题的底子是用two pointers按照非递减的顺序合并两个数列&#xff0c;无非是再确定一下中间那个数的下标&…

理解系统底层的概念是多么重要

理解系统底层的概念是多么重要 ——趋势科技邹飞评《程序员的自我修养》 关于《程序员的自我修养》这本书&#xff0c;最初是在和博文的周筠老师MSN上谈起&#xff0c;当时听周老师提及这本书是一本关于链接和装载等系统软件知识的书籍&#xff0c;当时就很感兴趣&#xff0c;因…

session删除

删除一个session值&#xff1a; session_unset(变量); session_destroy(变量); 删除一个cookie&#xff1a; 注意第二个参数中手册中的说明是&#xff1a; Cookie 必须用和设定时的同样的参数才能删除。如果其值一个空字符串&#xff0c;或者是 FALSE&#xff0c;并且其它的参数…

Android学习路线

Android学习路线 第一阶段&#xff1a;Java面向对象编程 1.Java基本数据类型与表达式&#xff0c;分支循环。 2.String和StringBuffer的使用、正则表达式。 3.面向对象的抽象&#xff0c;封装&#xff0c;继承&#xff0c;多态&#xff0c;类与对象&#xff0c;对象初始化和回…

1048 Find Coins(two pointers解法)

1. 很典型的双指针的应用&#xff0c;将数组按照非降排列&#xff0c;两个指针从一头一尾开始包抄&#xff0c;若等于&#xff08;等于要放在第一个&#xff09;则返回结果结束程序&#xff0c;小于则左指针右移&#xff0c;大于则右指针左移。 2. 起初还担心&#xff0c;如果…

TCP/IP 协议理解

TCP/IP 协议&#xff08;Transmission Control Protocol / internet Protocol&#xff09;&#xff0c;因特网互联协议&#xff0c;又名网络通讯协议。通俗而言&#xff1a;TCP负责发现传输的问题&#xff0c;一有问题就发出信号&#xff0c;要求重新传输&#xff0c;直到所有数…

Webhint开源了一种代码检查工具

Webhint项目提供了一种用于检查代码的可访问性、性能和安全的开源检查&#xff08;Linting&#xff09;工具。在创建Web站点和应用中&#xff0c;有越来越多的细节问题亟待完善。为此&#xff0c;Webhint力图帮助开发人员标记这些细节。\\Webhint以命令行接口&#xff08;CLI&a…

SHAREPOINT爬网设置

F:\2009年\MOSS档案 http://share:30088/default.aspx 进入管理中心 共享服务管理-SharedServices1-搜索设置-内容源和爬网计划-本地 Office SharePoint Server 网站-下拉- -编辑-爬网计划-完全(增量)爬网-创建计划 - 对该内容源启动完全爬网-勾选上。 一、 爬网设置&#xff…

1093 Count PAT‘s

这题出现在“活用递推”专题下面&#xff0c;所谓递推就是这一步的结果和上一步的结果有直接联系。对于本题来说&#xff0c;从左到右&#xff0c;记到当前位置&#xff0c;一共出现的P的个数&#xff0c;如果当前位置是P&#xff0c;则个数就是上一位的加1&#xff0c;否则等于…

拜托,面试别再问我时间复杂度了!!!

最烦面试官问&#xff0c;“为什么XX算法的时间复杂度是OO”&#xff0c;今后&#xff0c;不再惧怕这类问题。 快速排序分为这么几步&#xff1a; 第一步&#xff0c;先做一次partition&#xff1b; partition使用第一个元素tarr[low]为哨兵&#xff0c;把数组分成了两个半区&a…

C#和JavaScript的简单互交

转自&#xff1a;http://cgxcn.blog.163.com/blog/static/132312422009426112558831/ 1.asp.net呼叫js Response.Write("<script languagejavascript>"); Response.Write("alert(登峰欢迎您 );" ); …

读阮一峰对《javascript语言精粹》的笔记,我有疑问。

《javascript语言精粹》是一本很棒的书籍&#xff0c;其中作者在附录列出了12种他所认为的javascript语言中的糟粕。 我最近开始跟读前端前辈的博客&#xff0c;其中读到了阮一峰的《12种不宜使用的Javascript语法》&#xff0c;有一个疑问&#xff1a; 文如下&#xff1a; 9. …

1008 Elevator

思路如下&#xff1a;用一个整型数组存楼层&#xff0c;0号元素为0(开始停在0层)&#xff0c;每读入一个元素&#xff0c;和上一个比较&#xff0c;更大说明是上升&#xff0c;总时长加上楼层差*6&#xff0c;反之说明是下降&#xff0c;总时长加上楼层差*4。最后再管停留时间&…

软件安全性能測试(转载)

近来&#xff0c;在我负责的公司某软件产品的最后測试工作&#xff0c;经常被问到这样一个问题&#xff1a;在做測试过程中&#xff0c;我们的软件产品在安全性方面考虑了多少&#xff1f;应该怎样測评一个软件究竟有多安全&#xff1f; 这个软件因为涉及客户商业上重要的…

org.springframework.data.redis 一次连接获取特定key所有k-v(pipeline)

2019独角兽企业重金招聘Python工程师标准>>> 当我们需要一次性获取在redis中以hash方式存储的所有key-value时&#xff0c;我们可以使用下面的方式来获取。 public void testGetMore() throws IOException {RedisCallback<List<Object>> pipelineCallba…

[网络应用]Flash中鼠标手势及Ctrl+T问题{Firefox}

想说这个问题很久了&#xff0c;也是对Flash的一点点小小的不满。 当你在浏览youku&#xff0c;56&#xff0c;Youtube&#xff0c;土豆&#xff0c;Kou6上的视频时&#xff0c;是不是会发现你的CtrlT命令不凑效了。 当你在打开一个Flash全站时&#xff0c;或者鼠标焦点在一个令…

(C++)一行代码递归实现辗转相除法

定理&#xff1a;两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。 int gcd(int a,int b){return !b?a:gcd(b,a%b); } 这里递归边界是 gcd(a,0)a; 递归式是 gcd(a,b)gcd(b,a%b);