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环境下测试通过.基于这样的分层架构代码层次清晰,逻辑性强,有良好的健壮性和可扩展性,便于后期的维护
MVC设计模式在asp用户登陆中的运用
最新推荐文章于 2024-04-25 10:49:29 发布