[ASP中使用三层架构] 10.用户登录之二 UserLog表与相关类

这篇博客介绍了在ASP中使用三层架构来处理用户登录日志的实现方式。通过创建DAL_UserLog类,实现了RecordLog和RecordLogin两个方法,分别用于通用的日志记录和登录过程的日志记录。文章探讨了VBScript中`me`关键字的用法,并提出了关于私有方法内部使用`me`的疑问。

    [UserLog]用于记录用户的操作信息,表结构如下
 [LogID]        [int] IDENTITY(1,1) NOT NULL,
 [UserAccount]  [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
 [Path]         [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL, 操作页面
 [LogType]      [nvarchar](20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
 [LogMsg]       [nvarchar](100) COLLATE Chinese_PRC_CI_AS NULL,
 [LogDate]      [datetime] NULL,
 [LogIp]        [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
   
    因为[UserLog]表涉及的业务比较单一,基本没有必要通过实体类进行操作,所以没有生成对应的实体类
   
   
    以[UserLog]表生成一个单表数据访问类DAL_UserLog,文件名为DAL_UserLog.asp,放在/Class/DAL/目录下,内容如下:
    class DAL_UserLog
        ' ******[UserLog] database field
     private lngLogID                            '[int] IDENTITY (1, 1) NOT NULL
     private strUserAccount                      '[nvarchar] (50) NOT NULL
     private strPath                             '[nvarchar] (50)
     private strLogMsg                           '[nvarchar] (100)
        private strLogType                          '[nvarchar] (20)             
        private datLogDate                          'datetime           
        private strLogIp
       
     private strSql                              'Sql query
       
     ' ==============================================================================
     ' Class Initialize, Terminate
     ' ==============================================================================
     Private Sub Class_Initialize
       End Sub
       Private Sub Class_Terminate
       End Sub
       
       
    ' ///////////////////////////////////////////////////////////////////////////////
    '               Get  Data / dataset
    ' ///////////////////////////////////////////////////////////////////////////////
     
     
     
    ' ///////////////////////////////////////////////////////////////////////////////   
    '                   Update Table
    ' ///////////////////////////////////////////////////////////////////////////////
        ' ***********************************
     ' User log Record
        ' ***********************************
     Public Sub RecordLog(ByVal vUserAccount,ByVal vLogType,ByVal vMessage)
      strSql = " insert into [UserLog] (UserAccount, LogType,Path, LogMsg, LogDate, LogIp) "
      strSql = strSql &" values "
      strSql = strSql &" ('"&page.ToSql(vUserAccount)&"','"&vLogType&"','"&page.ToSql(page.URL)&"','"&left(page.ToSql(vMessage),100)&"',GetDate(),'"& page.GetIP &"' ) "
      Data.Execute strSql
     End Sub
     
     
     ' ***********************************
     '  Record Login
        ' ***********************************
     Public Sub RecordLogin(ByVal vUserAccount,ByVal vMessage)
         me.RecordLog vUserAccount,"Login",vMessage
     End Sub
    ' ///////////////////////////////////////////////////////////////////////////////
    '                   Show UI / Show-select
    ' ///////////////////////////////////////////////////////////////////////////////
    end class
   
    DAL_UserLog中有两个方法,RecordLog 和 RecordLogin,前者是记录Log信息的通用方法,后者用于登录过程.
    又可以看到熟悉的Data & page 活跃的身影,大家自己体会一下.
    vbscript类的语法中有一个特殊的用法,即me.RecordLog, me代表当前对象.很奇怪的是,如果RecordLog是一个私有方法,即用private限制之后,就无法在对象的内部用me.RecordLog来调用了,难道还能在外面使用me不成?
    按说这仍然是在内部进行的调用,不用me也可以做到同样的效果,那么在vbscript里面这个me又有什么特殊作用呢?或者只是随手写的一个鸡肋的东西?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值