zoukankan      html  css  js  c++  java
  • Global.asax文件—ASP.NET细枝末节(1)

    说明

    Global的解释是全局的、全球的。

    clipboard

     

    Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法。你可以使用这个文件实现应用程序安全性以及其它一些任务。

    Global.asax使用频率不是特别高,属于细枝末节的小知识点。不说了,来我们一起研究一下这个东西吧。

    创建和预览

    1.添加

    同web.config一样,通常情况下Global.asax文件名是固定的。如果您没有非得要改名的理由,不建议您修改。

    你改了,系统不懂了。(这句话用《从前慢》的曲子唱!)

    clipboard[1]

    2.看看里面写了什么

    clipboard[2]

     

    把网站信息记录在txt文件中

    1.把各种应用启动信息写入日志文件中(就是一个txt)

     

     1 public class Global : System.Web.HttpApplication
     2     {
     3         //自从服务器启动起来,网站第一次被访问的时候Application_Start执行
     4         protected void Application_Start(object sender, EventArgs e)
     5         {
     6             File.AppendAllText("d:\1.txt", DateTime.Now+"Application_Start
    ");
     7         }
     8  
     9         //Session启动时
    10         protected void Session_Start(object sender, EventArgs e)
    11         {
    12             File.AppendAllText("d:\1.txt", DateTime.Now + "Session_Start
    ");
    13         }
    14  
    15         //当一个请求过来的时候
    16         //html等静态文件是iis直接把文件给到浏览器,不经过asp.net引擎的处理。
    17         //所以不会调用Application_BeginRequest方法
    18         protected void Application_BeginRequest(object sender, EventArgs e)
    19         {
    20             //即使用户访问一个不存在的页面,那么Application_BeginRequest也会被调用
    21  
    22             File.AppendAllText("d:\1.txt", DateTime.Now + "Application_BeginRequest:"+
    23                 Context.Request.RawUrl + "
    ");
    24         }
    25  
    26         protected void Application_AuthenticateRequest(object sender, EventArgs e)
    27         {
    28  
    29         }
    30  
    31         //程序中发生未处理异常
    32         protected void Application_Error(object sender, EventArgs e)
    33         {
    34             File.AppendAllText("d:\1.txt", DateTime.Now + "Application_Error:"+
    35                 Context.Error + "
    ");
    36         }
    37  
    38         //(*)Session过期(只有进程内Session,也就是InProc过期的时候才会调用Session_End)
    39         protected void Session_End(object sender, EventArgs e)
    40         {
    41             File.AppendAllText("d:\1.txt", DateTime.Now + "Session_End
    ");
    42         }
    43  
    44         protected void Application_End(object sender, EventArgs e)
    45         {
    46             File.AppendAllText("d:\1.txt", DateTime.Now + "Application_End
    ");
    47         }
    48    }
    View Code

    UrlRewrite(URL重写)

    1.UrlRewrite啥意思?

    啥叫URL重写,简单说举个例子,

    例如http:// www.a.com/viewPerson.aspx

    这个页面可以接受一个请求参数   id。

    请求时,就可能出现这样的网址。

    http:// www.a.com/viewPerson.aspx?id=11

    http:// www.a.com/viewPerson.aspx?id=12

    ..............

    URL重写后

    http:// www.a.com/viewPerson-11.aspx

    http:// www.a.com/viewPerson-12.aspx

    这样的网址,就和上面带请求参数的网址 一致了。

    注意不是 http:// www.a.com/viewPerson-11.aspx取代了http:// www.a.com/viewPerson.aspx?id=11,

    而是http:// www.a.com/viewPerson.aspx-11.aspx会指向http:// www.a.com/viewPerson.aspx?id=11。

    2.URL重写的好处

    URL重写可以让自己的网址变得更“漂亮”,消除掉又长的、又乱的请求参数的影响。

    当然这些只是强迫症的心里。

    URL重写最关键的意义在于SEO方面。

    3.思路

    每次浏览器访问网站的时候,都会触发Application_BeginRequest这个方法。

    即使用户访问一个不存在的页面,那么Application_BeginRequest也会被调用

    所以我们如果想做URL重写的话,在这个方法里操作就好了。

    4.做法

    protected void Application_BeginRequest(object sender, EventArgs e)

            {

                //Url重写:UrlRewrite。ViewPerson-1.aspx

                Match match = Regex.Match(Context.Request.Path, @"^/ViewPerson-(d+).aspx$");

                if (match.Success)

                {

                   string id = match.Groups[1].Value;

                   Context.RewritePath("/ViewPerson.aspx?id="+id);

                }

            }

    结尾

    还有一些教材,用Application_Start 做人数统计。

    别搭理他。

     

     

     

  • 相关阅读:
    Thinkhphp5控制器调用的Model层的方法总结
    js数组与字符串的相互转换方法
    oop中 限制文件类型和大小
    php常用内置函数
    PHP 面向对象
    微信JSSDK开发
    PHPExcel探索之旅
    php操作Excel
    百度地图和高德地图的API视频教程
    手机号码归属地查询(免费)
  • 原文地址:https://www.cnblogs.com/mcad/p/4351935.html
Copyright © 2011-2022 走看看