MVC设计模式在asp用户登陆中的运用

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环境下测试通过.基于这样的分层架构代码层次清晰,逻辑性强,有良好的健壮性和可扩展性,便于后期的维护

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值