Asp.net中Request.Url的各个属性对应的意义介绍

1.简单的环境搭建
  在本地IIS上配置了一个网站:主机名为wjnhome.com,端口88,然后建了一个虚拟目录指向同一站点,虚拟目录名称为virtual,配置host为127.0.0.1  wjnhome.com
  所以地址就为:http://jb51.net:88/virtual/urldemo.aspx?id=2#top
2.编写简单的代码


代码如下:

//虚拟目录的路径
Response.Write("<strong>Request.ApplicationPath:</strong>" + Request.ApplicationPath + "</br>");
//站点的物理路径(完整路径)
Response.Write("<strong>Request.PhysicalPath:</strong>" + Request.PhysicalPath + "</br>");
//站点物理路径的目录
Response.Write("<strong>DirectoryName:</strong>" + System.IO.Path.GetDirectoryName(Request.PhysicalPath) + "</br>");
//站点物理路径的目录
Response.Write("<strong>Request.PhysicalApplicationPath:</strong>" + Request.PhysicalApplicationPath + "</br>");
//当前页面的文件名
Response.Write("<strong>FileName:</strong>" + System.IO.Path.GetFileName(Request.PhysicalPath) + "</br>");
//当前页面的虚拟路径
Response.Write("<strong>Request.CurrentExecutionFilePath:</strong>" + Request.CurrentExecutionFilePath + "</br>");
//当前页面的虚拟路径
Response.Write("<strong>Request.FilePath:</strong>" + Request.FilePath + "</br>");
Response.Write("<strong>Request.Path:</strong>" + Request.Path + "</br>");
//原始URL
Response.Write("<strong>Request.RawUrl:</strong>" + Request.RawUrl + "</br>");
//绝对路径(不包括参数什么的)
Response.Write("<strong>Request.Url.AbsolutePath:</strong>" + Request.Url.AbsolutePath + "</br>");
//绝对URL
Response.Write("<strong>Request.Url.AbsoluteUri:</strong>" + Request.Url.AbsoluteUri + "</br>");
//URL协议方案
Response.Write("<strong>Request.Url.Scheme:</strong>" + Request.Url.Scheme + "</br>");
//URL的主机名
Response.Write("<strong>Request.Url.Host:</strong>" + Request.Url.Host + "</br>");
//URL端口号
Response.Write("<strong>Request.Url.Port:</strong>" + Request.Url.Port + "</br>");
//主机名+端口号
Response.Write("<strong>Request.Url.Authority:</strong>" + Request.Url.Authority + "</br>");
//获取文件名的本地操作系统表现形式
Response.Write("<strong>Request.Url.LocalPath:</strong>" + Request.Url.LocalPath + "</br>");
//附加路径信息,例如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 + "</br>");
//URL的GET参数
Response.Write("<strong>Request.Url.Query:</strong>" + Request.Url.Query + "</br>");
//主要指的是http://jb51.net:88/UrlDemo.aspx/Hello?id=22#top中#后面的top。
//但一般情况下无法获取值,因为浏览器不会把这个值发送到服务器端
Response.Write("<strong>Request.Url.Fragment:</strong>" + Request.Url.Fragment + "</br>");
//主机名
Response.Write("<strong>Request.Url.DnsSafeHost:</strong>" + Request.Url.DnsSafeHost + "</br>");
//URL的全部
Response.Write("<strong>Request.Url.OriginalString:</strong>" + Request.Url.OriginalString + "</br>");
//这种情况 Uri uriAddress = new Uri ("http://user:password@www.contoso.com/index.htm ") Console.WriteLine(uriAddress.UserInfo);
Response.Write("<strong>Request.Url.UserInfo:</strong>" + Request.Url.UserInfo + "</br>");
//从某个页面跳转过来的时候会显示源页面的值
Response.Write("<strong>Request.UrlReferrer:</strong>" + Request.UrlReferrer + "</br>");
//URI的每一段
for (var i = 0; i < Request.Url.Segments.Length;i++ )
{
Response.Write("<strong>Request.Url.Segment" + i + ":</strong>" + Request.Url.Segments[i] + "</br>");
}

3.输出结果
  Request.ApplicationPath:/virtual
  Request.PhysicalPath:E:\VsProject\201200420\UrlDemo\UrlDemo\urldemo.aspx
  DirectoryName:E:\VsProject\201200420\UrlDemo\UrlDemo
  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://jb51.net:88/virtual/urldemo.aspx?id=2
  Request.Url.Scheme:http
  Request.Url.Host:wjnhome.com
  Request.Url.Port:88
  Request.Url.Authority:wjnhome.com: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:wjnhome.com
  Request.Url.OriginalString:http://jb51.net:88/virtual/urldemo.aspx?id=2
  Request.Url.UserInfo:
  Request.UrlReferrer:
  Request.Url.Segment0:/
  Request.Url.Segment1:virtual/
  Request.Url.Segment2:urldemo.aspx

作者:wjn

(0)

相关推荐

  • ASP.NET获取URL方法汇总

    //获取完整url (协议名+域名+站点名+文件名+参数) string fullUrl = Request.Url.ToString(); //获取客户端请求的URL信息(不包括主机和端口) string rawUrl = Request.RawUrl; //获取站点名+页面名 string absolutePath = Request.Url.AbsolutePath; //获取主机部分 string urlHost = Request.Url.Host; //获取参数部分 string u

  • asp.net获取当前网址url的各种属性(文件名、参数、域名 等)的代码

    设当前页完整地址是:http://www.jb51.net/aaa/bbb.aspx?id=5&name=kelli "http://"是协议名 "www.jb51.net"是域名 "aaa"是站点名 "bbb.aspx"是页面名(文件名) "id=5&name=kelli"是参数 [1]获取 完整url (协议名+域名+站点名+文件名+参数) 复制代码 代码如下: string url=R

  • asp页面和Asp.net页面传中文参数UrlEncode编码以及接收解码

    举例:asp.net用Get方式传输的URL为:"WebPage.asp?str="+HttpUtility.UrlEncode(str) ,解码方式为HttpUtility.UrlDecode(Request.QueryString["str"].ToString().Trim()) asp的Get方式传送为"webPage.aspx?str="+server.urlencode(str) 两种编码不统一 解决方案:在asp使用Get方式传送&

  • asp.net URL中包含中文参数造成乱码的解决方法

    问题: 前段时间,在系统中做了一个类似于友情链接的功能块,一直运行良好,直到有一天加了类似于以下的链接地址:http://www.****.com/user.aspx?id=水天,就出现大问题了: 1.从IE地址栏中直接输入这个地址,访问没错: 2.做一个静态页,其中包括这个超链接,点击访问也没错: 3.就是把这个链接添加到这个功能块中,点击访问那边接收到的是乱码. 一开始,被这个问题也搞得头大,在google了一把后,总算是把问题给搞清楚了,其实只要这个链接地址不经过任何编码传递是不会有问题的

  • asp.net获取URL和IP地址的方法汇总

    HttpContext.Current.Request.Url.ToString() 并不可靠. 如果当前URL为 http://localhost/search.aspx?user=http://csharp.xdowns.com&tag=%BC%BC%CA%F5 通过HttpContext.Current.Request.Url.ToString()获取到的却是 http://localhost/search.aspxuser=http://csharp.xdowns.com&tag=

  • Asp.net中获取应用程序完整Url路径的小例子

    复制代码 代码如下: /// <summary> /// Gets the absolute root /// </summary> public static Uri AbsoluteWebRoot {     get  www.jb51.net    {         var context = HttpContext.Current;         UriBuilder uri = new UriBuilder();         uri.Host = context.

  • ASP.NET自动为URL加上超链接的代码

    作为一个程序员,在完成设计后还要根据程序的情况以及用户的反映不断对程序进行改进,这样才能不断地完善自己的作品.笔者在制作完软件商务网的论坛后,发现人们总喜欢在帖子中加上各种有用的URL链接或Email地址.而笔者当初设计时没有考虑到这一点,使得这些URL链接或Email地址只能以文字的形式而并不是以超链接的形式显示,其它浏览帖子的人还必须把这些URL链接拷贝到浏览器中或把Email地址拷贝到Outlook中才能转到相应的链接地址或发送电子邮件到相应的Email地址. 发现这个问题后,笔者即着手进

  • asp.net URL编码与解码

    例如Url参数字符串中使用key=value键值对这样的形式来传参,键值对之间以&符号分隔,如/s?q=abc&ie=utf-8.如果你的value字符串中包含了=或者&,那么势必会造成接收Url的服务器解析错误,因此必须将引起歧义的&和=符号进行转义,也就是对其进行编码. 又如,Url的编码格式采用的是ASCII码,而不是Unicode,这也就是说你不能在Url中包含任何非ASCII字符,例如中文.否则如果客户端浏览器和服务端浏览器支持的字符集不同的情况下,中文可能会造成

  • asp.net下检测远程URL是否存在的三种方法

    复制代码 代码如下: private void Page_Load(object sender, System.EventArgs e) { string url1 = "http://s.jb51.net/"; string url2 = "http://www.jb51.net/images/logo.gif"; Response.Write("<li>方法1:"); Response.Write(url1 + " 存在

  • asp.net C#检查URL是否有效的方法

    我们有时候需要对用户输入的网站(URL)进行有效性检查, 复制代码 代码如下: function CheckUrl(str) {    var RegUrl = new RegExp();    RegUrl.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\.[A-Za-z0-9-_%&?/.=]+$");    if (!RegUrl.test(str)) {        return false;    }    return true;} 不止

随机推荐