admin 管理员组文章数量: 1086019
2024年3月28日发(作者:readme文档)
第
8
卷
%
第
8
期
2009
年
8
月
Vol.8No.8
Aug.2009
MVC设计模式在ASP角色身份验证中应用与实现
王时绘,吴力挽,童小刚
(湖北大学数学与计算机科学学院,湖北武汉
430062
)
摘要:
介绍了
MVC
设计模式的思想
,
以
ASP
角色身份验证为具体实例
,
研究了
MVC
设计模式在角色身份验证的
设计与运用
,
并在此基础上构建了一个基于
B/S
三层架构的角色身份验证系统。项目实际应用证明采用
MVC
设计模
式能加快系统的开发效率
,
系统具有较好的扩展性和可维护性
,
分层架构清晰
,
耦合度低。
关键词:
MVC
;设计模式;身份验证;耦合度
中图分类号:
TP311.11
文献标识码:
A
文章编号:
1672-7800
(
2009
)
08-0035-03
0
首先用户的请求通过视图发送给控制器,由控制器接收
引言
从视图发过来的请求,做出判断调用相应的模型,接着模型
将处理后的信息反馈给视图,最后视图还要将返回的信息发
送给控制器,由控制器判断下一步操作所应该调用的视图,
每一步的操作都遵循这一关系。
ASP
是
Microsoft
开发的动态网页语言,在微软的服务器软
件
IIS
上解释执行。由于
ASP
入门简单,上手较快,很多开发者
常常将
ASP
代码与
Html
语言混杂在一起,造成代码混乱,难
于维护,可重用性低,健壮性弱。本文从设计模式角度,利用
MVC
重构
ASP
角色身份验证代码,采用
Model-View-Con-
troller
三层架构,系统分层架构清晰,逻辑性强,健壮性好,便
于后续的扩展和维护,也为开发
ASP
其他系统模块提供了较
大的参考价值。
1MVC
设计思想概述
2
图
1MVC
层次关系
1.1MVC
的层次结构
MVC
是目前广泛流行的一种设计模式,它把一个系统应
用按照输入输出分为
3
个核心部件:模型,视图和控制器。
模型(
Model
):该层封装的是业务对象的属性数据和业务
逻辑。模型接受业务视图的请求,并根据请求返回最终结果。模
型只需编写一次,就可以被多个视图调用,增加代码的复用性。
控制器(
Controller
):主要是接受用户的请求,并决定应该
调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的
请求并返回数据,并通过表示层呈现给用户。
视图(
View
):是用户看到的并与之交互的界面。视图对象
使用对象模型的查询方法以获取数据,并将数据显示给用户。
用户角色身份验证系统设计
本系统采用微软的
ASP
语言进行系统应用开发,使用
Mi-
croSoftSQL2000
做数据库,利用
IIS
服务器软件来解释执行
.
整
个系统采用
MVC
模式进行设计,下面说明基于
MVC
实现方式。
2.1
系统流程图
本系统的程序运行流程图见图
2
。
1.2MVC
的层次关系
模型、视图与控制器的分离,使得一个模型可以具有多
个显示视图。如果用户通过某个视图的控制器改变了模型的
数据,其它依赖于这些数据的视图也都会发生变化。模型、
视图、控制器三者之间的关系和各自的主要功能如图
1
所示。
作者简介:王时绘
(1965-),
男
,
湖北武汉人
,
湖北大学数学与计算机科学学院教授
,
研究方向为计算机网络与数据库;吴力挽
(1980-),
男
,
湖北蕲春人
,
湖北大学数学与计算机科学学院硕士研究生
,
研究方向为信息系统分析与集成;童小刚
(1984-),
男
,
湖北武汉人
,
湖北大学数学与计算机
科学学院硕士研究生
,
研究方向为信息系统分析与集成。
软件导刊
2009
年
2.2
数据库设计
由于只是一个简单的登陆系统,数据表只需建立两个字
段:用户名(
UserName
)和密码(
Password
),建表如表
1
。
表
1
数据表
字段数据类型长度
UserNameVarChar20
PasswordVarChar20
2.3
建立模型(
Model
)
模型层可以说是整个系统工作的核心,基本上所有的业务
逻辑和数据操作都在该层实现。这一层可以分为服务层(
Ser-
vice
)和数据访问层(
DAO
)。服务层职责是对模块的“原子用例”
进行实现,数据访问层用于配合服务层的数据存储操作。
2.3.1
服务层(
Service
)的实现
服务层是对业务对象属性数据的封装。服务层主要是为数
据访问层提供业务对象的属性数据。这里建立用户模型
User-
Bean
,其中,
UserName
和
PassWord
是该模型的属性数据。通过
Get
和
Let
方法对
Username
和
Password
进行访问。如果要获取
UserName
和
PassWord
的值,可以通过
me
和
rd
来调用。下面给出部分核心代码:
PublicPropertyGetusername
username=my_username
EndProperty
PublicPropertyLetusername
(
ByValValue
)
my_username=Value
EndProperty
PublicPropertyGetpassword
password=my_password
EndProperty
PublicPropertyLetpassword
(
ByValValue
)
my_password=Value
EndProperty
2.3.2
数据访问层(
DAO
)的实现
数据访问层主要是抽象和封装对数据库各种操作方法的
实现
.
对数据的增加、修改和删除都可以封装在数据访问层。在
这一层中,封装了两个方法。一个是
GetUserForm
(),其作用是
通过
Request
函数获取页面的表单值,并将其值通过
Function
来返回。另一个是
CheckUserLogin
(),其作用是对传来的表单
值,以参数形式传入
SQL
语句中,和数据表中的用户名和密码
进行核对比较,根据比较结果实现页面跳转。下面给出关键代
码:
PublicFunctionGetUserForm
()
me=tr
(
(
"username"
))
rd=tr
(
(
"password"
))
me<>""rd<>""
Then
GetUserForm=1
Else
GetUserForm=0
EndIf
EndFunction
PublicFunctionCheckUserLogin
(
username
,
password
)
_Connusername
,
password
,
"select
username
,
passwordfrom
[
hg_admin_user
]
whereusername='"
&username&"'andpassword='"&password&"'"
IfNot
(
OleDbSQLHelper.m_OleDbSQLHelper.
m_
)
Then
Session
(
"username"
)
=Trim
(
OleDbSQLHelper.m_Rs
(
"
username"
))
ct""
Else
(
""
)
EndIf
EndFunction
%>
2.4
控制层设计(
Controller
)
控制层不做任何的数据处理,它只接受浏览器的请求,并
决定执行什么业务逻辑功能。在
ASP
中,没有可采用的控制类
库来进行请求控制转发。这里,笔者建议采用跨页面传值的形
式来进行请求转发。通过
tring
获取传值内容,
并根据其内容来执行触发操作(如图
3
所示)。关键代码如下:
'
引用
DAO
层的方法
PublicSubCheckUserLoginAction
()
rForm=1Then'
不为空时进行
登陆验证
-
name
,
rd
EndIf
EndSub
第
8
期王时绘,吴力挽,童小刚:
MVC
设计模式在
ASP
角色身份验证中应用与实现
·
37
·
下面只给出
ASP
视图层的关键代码。有不足,
MVC
的缺点是由于它没有明确的定义,所以完全理解
serLoginAction
MVC
并不是很容易。使用
MVC
需要精心的计划,由于它的内
部原理比较复杂,所以需要花费一些时间去思考。
参考文献:
[
1
]
[
2
]
[
3
]
[
4
]
[
5
]
林凯
.
基于
MVC
设计模式的
Struts
框架研究[
J
]
.
科技信息,
2008
(
8
)
.
王长涛,马斌,张楠,等
.
基于
MVC
设计模式
Struts
架构研究及应
用[
J
]
.
科技广场,
2008
(
1
)
.
3
结束语
在本系统中,笔者按照
MVC
模式进行开发,严格采用三层
架构,使页面代码和业务逻辑完全分离。这为
ASP
开发带来了
一种全新的思路和模式。使
ASP
具有分层和架构的概念,为开
发
ASP
其他模块具有借鉴意义。本文的所有代码均在
Winxp+
设计[
M
]
.
北京:中国电力出版社,
2001.
张固,汪晓平
.ASP
网络应用系统典型模块开发实例导航[
M
]
.
北
京:人民邮电出版社,
2004.
IIS5.1+SQL2000
环境下测试通过。
总而言之,基于用
MVC
模式开发的系统,系统模块之间耦
合度较低,模块之间的结构关系更加清晰,具有良好的可扩展
性和可维护性,这为以后系统的升级提供了方便。同时,也减少
了软件开发的成本,有利于软件的工程化管理。当然,
MVC
也
EricFreeman&ElisabethFreemanwithKathySierra&BertBates
.HeadFirst
设计模式
(
中文版
)
[
M
]
.
北京:中国电力出版社,
2007.
(责任编辑:卓光)
ApplicationofMVCDesignPatterinASPRoleIdentityVerification
Abstract
:
ThispaperintroducestheMVCdesignpatternofthoughttotheroleofASPauthenticationforspecificexamplestostudythe
roleofMVCdesignpatternatthedesignofauthenticationandapplication,andonthisbasistobuildupaBasedonB/Sthree-tierar-
tstoprovethepracticalapplicationoftheuseofMVCdesignpatterncanspeed
upthedevelopmentoftheefficiencyofthesystem,thesystemhasbetterscalabilityandmaintainability,layeredarchitectureclearandlow
coupling.
KeyWords
:
MVC;DesignMode;Authentication;CouplingDegree
版权声明:本文标题:MVC 设计模式在ASP 角色身份验证中应用与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1711596655a601602.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论