zoukankan      html  css  js  c++  java
  • web程序中获取应用程序系统变量的方法( For.net 1.1)

    获取系统变量在.net 的web应用程序中的确是非常方便,比如获取 "http://ap2:8080/"或者"http://10.0.0.1/mypplication/"等诸如此类的系统变量。
    注:本文主要是针对.net Framework 1.0、1.1的情况,因为.net 2.0的命名空间已经发生了很大的变化,在后面的文章中将会专门加以介绍

    为描述方便,先新建一aspx文件,前台文件如下:

    <body MS_POSITIONING="GridLayout">
            
    <form id="Form2" method="post" runat="server">
                
    <FONT face="宋体">
                    
    <asp:Button id="btn_Page" style="Z-INDEX: 101; LEFT: 8px; POSITION: absolute; TOP: 16px" runat="server"
                        Text
    ="通过Page获取"></asp:Button>
                    
    <asp:Label id="lbInfo1" style="Z-INDEX: 102; LEFT: 48px; POSITION: absolute; TOP: 56px" runat="server"></asp:Label>
                    
    <asp:Button id="btn_ServerVal" style="Z-INDEX: 103; LEFT: 520px; POSITION: absolute; TOP: 16px"
                        runat
    ="server" Text="通过ServerVariables获取"></asp:Button>
                    
    <asp:Label id="lbInfo2" style="Z-INDEX: 104; LEFT: 48px; POSITION: absolute; TOP: 80px" runat="server"></asp:Label>
                    
    <asp:Label id="lbInfo3" style="Z-INDEX: 105; LEFT: 48px; POSITION: absolute; TOP: 104px" runat="server"></asp:Label>
                    
    <asp:Button id="btn_Cintext" style="Z-INDEX: 106; LEFT: 280px; POSITION: absolute; TOP: 16px"
                        runat
    ="server" Text="通过Context获取"></asp:Button></FONT>
            
    </form>
        
    </body>



    第一种方法,直接在在页面中获取。利用Page.Request命名空间。

    private void btn_Page_Click(object sender, System.EventArgs e)
            
    {
                
    this.lbInfo2.Text="";
                
    this.lbInfo3.Text="";
                
    this.lbInfo1.Text=Page.Request.ApplicationPath+"<br/>"
                    
    +Page.Request.CurrentExecutionFilePath+"<br/>"
                    
    +Page.Request.UserHostAddress+"<br/>"
                    
    +Page.Request.Url.Host+"<br/>"
                    
    +Page.Request.RawUrl+"<br/>"
                    
    +Page.Request.UserHostName+"<br/>"
                    
    +Page.Request.Url.HostNameType+"<br/>"
                    
    +Page.Request.Url.Port+"<br/>"
                    
    +Page.Request.UrlReferrer.Host+"<br/>"
                    
    +Page.Request.Url.LocalPath+"<br/>"
                    
    +Page.Request.Url.Authority+"<br/>"
                    
    +Page.Request.Url.UserInfo+"<br/>"
                    
    +"<br/>";
            
            }


    第二种方法:在非Web项目中用Context的Request方法。

    private void btn_Cintext_Click(object sender, System.EventArgs e)
            
    {
                
    this.lbInfo1.Text="";
                
    this.lbInfo3.Text="";
                
    this.lbInfo2.Text=
                    System.Web.HttpContext.Current.Server.MachineName
    +"<br/>"
                    
    +System.Web.HttpContext.Current.Request.ApplicationPath+"<br/>"
                    
    +System.Web.HttpContext.Current.Request.CurrentExecutionFilePath+"<br/>"
                    
    +System.Web.HttpContext.Current.Request.RawUrl+"<br/>"
                    
    +System.Web.HttpContext.Current.Request.Url+"<br/>"
                    
    +System.Web.HttpContext.Current.Request.UserHostAddress+"<br/>"
                    
    +System.Web.HttpContext.Current.Request.UserHostName+"<br/>"
                    
    +System.Web.HttpContext.Current.Request.RequestType+"<br/>"
                    
    +System.Web.HttpContext.Current.Request.UrlReferrer.Host+"<br/>"
                    
    +System.Web.HttpContext.Current.Request.UrlReferrer.HostNameType+"<br/>"
                    
    +System.Web.HttpContext.Current.Request.Path+"<br/>"
                    
    +System.Web.HttpContext.Current.Request.Url.Port+"<br/>"
                    
    +System.Web.HttpContext.Current.Request.Url.IsDefaultPort.ToString()+"<br/>"
                    
    +System.Web.HttpContext.Current.Request.Url.IsFile.ToString()+"<br/>"
                    
    +System.Web.HttpContext.Current.Request.Url.LocalPath+"<br/>"
                    
    +"<br/>";
            
            }


    第三种方法:可以从Request.ServerVariables的集合中获取 。获取的变量也最全。

    private void btn_ServerVal_Click(object sender, System.EventArgs e)
            
    {
            
                
    this.lbInfo1.Text="";
                
    this.lbInfo2.Text="";
                
    int loop1, loop2;
                System.Collections.Specialized.NameValueCollection coll;

                
    //以下两种方式均可
                
    //coll=Page.Request.ServerVariables; 
                coll=System.Web.HttpContext.Current.Request.ServerVariables; 
                
    this.lbInfo3.Text="";
                
    // Get names of all keys into a string array. 
                String[] arr1 = coll.AllKeys; 
                
    for (loop1 = 0; loop1 < arr1.Length; loop1++
                
    {
                    
    this.lbInfo3.Text+=("Key: " + arr1[loop1] + "<br>");
                    String[] arr2
    =coll.GetValues(arr1[loop1]);
                    
    for (loop2 = 0; loop2 < arr2.Length; loop2++
                    
    {
                        
    this.lbInfo3.Text+=("Value " + loop2 + "" + Server.HtmlEncode(arr2[loop2]) + "<br>");
                    }

                }

            }

    亦可用于 Web service

    注意,以上方法获取IP未必真实。

    邀月注:本文版权由邀月和博客园共同所有,转载请注明出处。
    助人等于自助!  3w@live.cn
  • 相关阅读:
    Spring集成MyBatis
    UpdatePanel的简单用法(转)
    updatePanel导致JS失效的解决办法(转)
    sql面试题(学生表_课程表_成绩表_教师表)
    javascript深入理解js闭包
    T-SQL利用Case When Then多条件判断
    T-SQL排名函数
    DataTable字符串类型的数字,按照数字类型排序
    Sql 行转列问题总结
    行转列:SQL SERVER PIVOT与用法解释
  • 原文地址:https://www.cnblogs.com/downmoon/p/1019885.html
Copyright © 2011-2022 走看看