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


本文标签: 系统 视图 模型 业务 开发