MVC設計模式在asp使用者登陸中的運用

來源:互聯網
上載者:User

MVC是一種優秀的設計模式.在MVC設計模式中,M代表Model,C代表Controller,V代表Viewer,也既是模型層,控制層和視圖層.
    Model是實現商務邏輯的地方,Controller是起著控制轉寄的作用,而Viewer則是顯示資料.
    下面以使用者登陸驗證為例,詳細介紹MVC實現架構:
    當使用者要進入WEB系統後台,必須要通過驗證,即通過使用者名稱和密碼進行登陸,驗證通過則允許進行瀏覽查看,否則提示使用者輸入錯誤.
    設計模型層:
    這裡模型是使用者,該使用者的屬性只有使用者名稱(username)和密碼(password),因此,username和password是登陸使用者的屬性.那麼可以設計如下的類進行封裝這個使用者模型層.
   Rem 登陸使用者模型層
   Rem 類名稱:使用者登陸屬性類
   Rem 建立時間:2009-3-5
   Dim LoginUser
   Set LoginUser= New LoginUser_'執行個體化一個對象
   Class LoginUser_
         Private my_username'私人屬性使用者名稱
         Private my_password'私人屬性使用者密碼
    
         Private Sub Class_Initialize()
         End Sub
  
         Private Sub Class_Terminate()              
         End Sub
         Public Property Get username'下面都是一些Get和Set方法
               username = my_username
         End Property
         Public Property Let username(ByVal Value)
               my_username = Value
         End Property
         Public Property Get password
               password = my_password
         End Property
         Public Property Let password(ByVal Value)
               my_password = Value
         End Property
End Class

好了,下面設計資料訪問層,也就是DAO.資料訪問層主要是對使用者登陸驗證的各種方法.我寫的代碼如下:
<!--#include file="../common/tool.asp"-->'防SQl注入類
<!--#include file="../ActionForm/LoginUser.asp"-->'調用模型層使用者屬性
<!--#include file="../common/conn.asp"-->'資料庫連接類
<%
Rem 使用者登陸的資料訪問層(資料處理)
Rem 建立時間:2009-3-5
Dim LoginUserDao
Set LoginUserDao= New LoginUserDao_
Class LoginUserDao_
    
   Private Sub Class_Initialize()
   End Sub
  
   Private Sub Class_Terminate()  
   End Sub
    
   Rem 擷取使用者的表單值
   Rem 當不為空白,返回結果為1;為空白返回結果為0
   Public Function GetUserForm()
         LoginUser.username=CheckString.CheckStr(Request.Form("username"))
         LoginUser.password=CheckString.CheckStr(Request.Form("password"))
         If LoginUser.username<>"" And LoginUser.password<>"" Then
               GetUserForm=1
         Else
               GetUserForm=0
        End If  
   End Function
  
   Rem 驗證使用者的登陸
   Public Function CheckUserLogin(username,password)
         OleDbSQLHelper.Db_Conn username,password,"select username,password from [hg_admin_user] where username='"&username&"' and password='"&password&"'"
        If Not(OleDbSQLHelper.m_Rs.Eof And OleDbSQLHelper.m_Rs.Bof) Then
            Session("username")=Trim(OleDbSQLHelper.m_Rs("username"))
            Response.Redirect "index.asp"
        Else
            Response.Write("<Script>alert('對不起,你的使用者名稱和密碼不正確');history.go(-1)</script>")
     End If
   End Function
  
End Class
%>
最後來設計BLL,也就是商務邏輯層.
<!--#include file="../Dao/LoginUserDao.asp"-->'引用DAL層的方法
<%
Rem 後台使用者登陸控制層(資料轉寄)
Rem 建立時間:2009-3-5
Dim LoginUserAction
Set LoginUserAction= New LoginUserAction_'實體化一個對象
Class LoginUserAction_  
   Private Sub Class_Initialize()
   End Sub
  
   Private Sub Class_Terminate()  
   End Sub
  
   Public Sub CheckUserLoginAction()
       If LoginUserDao.GetUserForm=1 Then'不為空白時進行登陸驗證
           LoginUserDao.CheckUserLogin LoginUser.username,LoginUser.password'向函數傳值
       End If
   End Sub
End Class
%>
視圖層設計:
在視圖層中,我們只需要這樣調用BLL中的方法
<!--#include file="../hg_admin_manage/Action/LoginUserAction.asp"-->
<%
LoginUserAction.CheckUserLoginAction
%>

以上代碼在WinXP+IIS5.0環境下測試通過.基於這樣的分層架構代碼層次清晰,邏輯性強,有良好的健壯性和可擴充性,便於後期的維護

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.