网络上关于Request.Url的说明已经很多也很丰富了,但是自己还是实践了一下,看看最终的结果与网络上的是否一致
1.简单的环境搭建
在本地IIS上配置了一个网站:主机名为wjnhome.com,端口88,然后建了一个虚拟目录指向同一站点,虚拟目录名称为virtual,配置host为127.0.0.1||zhaorong.me
所以地址就为:http://zhaorong.me:88/virtual/urldemo.aspx?id=2#top
2.编写简单的代码
复制代码 代码如下:
//虚拟目录的路径 Response.Write("<strong>Request.ApplicationPath:</strong>" + Request.ApplicationPath + ""); //站点的物理路径(完整路径) Response.Write("<strong>Request.PhysicalPath:</strong>" + Request.PhysicalPath + ""); //站点物理路径的目录 Response.Write("<strong>DirectoryName:</strong>" + System.IO.Path.GetDirectoryName(Request.PhysicalPath) + ""); //站点物理路径的目录 Response.Write("<strong>Request.PhysicalApplicationPath:</strong>" + Request.PhysicalApplicationPath + ""); //当前页面的文件名 Response.Write("<strong>FileName:</strong>" + System.IO.Path.GetFileName(Request.PhysicalPath) + ""); //当前页面的虚拟路径 Response.Write("<strong>Request.CurrentExecutionFilePath:</strong>" + Request.CurrentExecutionFilePath + ""); //当前页面的虚拟路径 Response.Write("<strong>Request.FilePath:</strong>" + Request.FilePath + ""); Response.Write("<strong>Request.Path:</strong>" + Request.Path + ""); //原始URL Response.Write("<strong>Request.RawUrl:</strong>" + Request.RawUrl + ""); //绝对路径(不包括参数什么的) Response.Write("<strong>Request.Url.AbsolutePath:</strong>" + Request.Url.AbsolutePath + ""); //绝对URL Response.Write("<strong>Request.Url.AbsoluteUri:</strong>" + Request.Url.AbsoluteUri + ""); //URL协议方案 Response.Write("<strong>Request.Url.Scheme:</strong>" + Request.Url.Scheme + ""); //URL的主机名 Response.Write("<strong>Request.Url.Host:</strong>" + Request.Url.Host + ""); //URL端口号 Response.Write("<strong>Request.Url.Port:</strong>" + Request.Url.Port + ""); //主机名+端口号 Response.Write("<strong>Request.Url.Authority:</strong>" + Request.Url.Authority + ""); //获取文件名的本地操作系统表现形式 Response.Write("<strong>Request.Url.LocalPath:</strong>" + Request.Url.LocalPath + ""); //附加路径信息,例如http://jb51.net:88/UrlDemo.aspx/Hello?id=22#top 那么这里就是Hello Response.Write("<strong>Request.PathInfo:</strong>" + Request.PathInfo + "<br />"); //URL的路径和GET参数 Response.Write("<strong>Request.Url.PathAndQuery:</strong>" + Request.Url.PathAndQuery + ""); //URL的GET参数 Response.Write("<strong>Request.Url.Query:</strong>" + Request.Url.Query + ""); //主要指的是http://jb51.net:88/UrlDemo.aspx/Hello?id=22#top中#后面的top。 //但一般情况下无法获取值,因为浏览器不会把这个值发送到服务器端 Response.Write("<strong>Request.Url.Fragment:</strong>" + Request.Url.Fragment + ""); //主机名 Response.Write("<strong>Request.Url.DnsSafeHost:</strong>" + Request.Url.DnsSafeHost + ""); //URL的全部 Response.Write("<strong>Request.Url.OriginalString:</strong>" + Request.Url.OriginalString + ""); //这种情况 Uri uriAddress = new Uri ("http://user:password@www.miguba.com/index.htm ") Console.WriteLine(uriAddress.UserInfo); Response.Write("<strong>Request.Url.UserInfo:</strong>" + Request.Url.UserInfo + ""); //从某个页面跳转过来的时候会显示源页面的值 Response.Write("<strong>Request.UrlReferrer:</strong>" + Request.UrlReferrer + ""); //URI的每一段 for (var i = 0; i < Request.Url.Segments.Length;i++ ) { Response.Write("<strong>Request.Url.Segment" + i + ":" + Request.Url.Segments[i] + ""); }
3.输出结果
Request.ApplicationPath | /virtual |
Request.PhysicalPath | E:\VsProject\201200420\UrlDemo\UrlDemo\urldemo.aspx |
DirectoryName | E:\VsProject\201200420\UrlDemo\UrlDemo |
Request.Url.OriginalString | http://zhaorong.me:88/virtual/urldemo.aspx?id=2 |
Request.Url.UserInfo | |
Request.UrlReferrer | |
Request.Url.Segment0 | / |
Request.Url.Segment1 | virtual/ |
Request.Url.Segment2 | urldemo.aspx |
Request.PhysicalApplicationPath | E:\VsProject\201200420\UrlDemo\UrlDemo\ |
FileName | urldemo.aspx |
Request.CurrentExecutionFilePath | /virtual/urldemo.aspx |
Request.FilePath | /virtual/urldemo.aspx |
Request.Path | /virtual/urldemo.aspx |
Request.RawUrl | /virtual/urldemo.aspx?id=2 |
Request.Url.AbsolutePath | /virtual/urldemo.aspx |
Request.Url.AbsoluteUri | http://zhaorong.me:88/virtual/urldemo.aspx?id=2 |
Request.Url.Scheme | http |
Request.Url.Host | zhaorong.me |
Request.Url.Port | 88 |
Request.Url.Authority | zhaorong.me:88 |
Request.Url.LocalPath | /virtual/urldemo.aspx |
Request.PathInfo | |
Request.Url.PathAndQuery | /virtual/urldemo.aspx?id=2 |
Request.Url.Query | ?id=2 |
Request.Url.Fragment | |
Request.Url.DnsSafeHost | zhaorong.me |