当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP模拟MVC模型的编程方式

ASP
提高SQL的执行效率的ASP的五种做法
asp的offset的一个go to page
asp中command的在单条记录时,有些字段显示为空的问题
asp,php一句话木马整理方便查找木马
asp 合并记录集并删除的sql语句
asp下循环一行多少个
asp循环行数输出函数
asp access重新开始编号
ASP生成数字相加求和的BMP图片验证码
静态页面利用JS读取cookies记住用户信息
比较详细的Asp伪静态化方法及Asp静态化探讨
asp Response.flush 实时显示进度
Asp高级故障解决以及相关代码
asp智能脏话过滤系统v1.0
ASP文件中的安全问题
Access数据库中“所有记录中均未找到搜索关键字”的解决方法
asp两组字符串数据比较合并相同数据
asp MYSQL出现问号乱码的解决方法
asp文章中随机插入网站版权文字的实现代码
ASP利用XMLHTTP实现表单提交以及cookies的发送的代码

ASP模拟MVC模型的编程方式


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-23   浏览: 83 ::
收藏到网摘: n/a

大家都知道JAVA里最流行的是MVC模型的编程方式,如果你不知道MVC的概念,可以去网上搜索下,应该会马上找到N多资料。PHP5推出之后,也开始使用MVC模式开发,看来MVC确实有很大的吸引力!
我在平时开发ASP项目的时候,也借鉴了JAVA的这个开发模式,虽然实现的不是很好,但也使代码结构清晰了不少,大大方便了美工修改程序!

下面是我的代码,具体说明看注释。

程序主要实现是后台管理员的操作:添加,删除,修改

分两个程序,adminusers_class.asp,adminusers_gl.asp

相当于JAVA力一个servlet,一个bean!所以没有完全的实现MVC,只是模拟了一下!

adminusers_class.asp代码如下:

以下为引用的内容:

<%
rem *****************通用网站管理系统***********************************
rem 页面功能:网站后台管理员管理类
rem @author 蔡晓亮
rem @version 1.0
%>
<!--#include file="conn.asp"-->
<%
'管理员管理类
Class AdminUsersGl 
Dim ASO
Private adminuser_name
Private adminuser_password
Private admingroup_id
Private adminuser_isshow
Private adminuser_selfconfig
Private adminuser_realname
'构造函数开始
Private Sub Class_Initialize 
Set ASO=Server.CreateObject("Adodb.RecordSet")
End Sub 
'析构函数开始
Private Sub Class_Terminate 
Err.Clear 
Set ASO=Nothing 
End Sub

'添加管理员
Public Function AdminUsers_Add(adminuser_name,adminuser_password,admingroup_id,adminuser_realname,adminuser_selfconfig,adminuser_isshow,adminuser_language) 
sql="select adminuser_name from ce_adminusers where adminuser_name='"&adminuser_name&"'"
ASO.Open sql,conn,1,3
if ASO.RecordCount<>0 then
Response.Redirect("messages.asp?mess_name=DATA_ADD_FAILURE&back_page=adminusers_gl.asp?action=add")
end if
if ASO.RecordCount=0 then
ASO.Close
sql="insert into ce_adminusers(adminuser_name,adminuser_password,admingroup_id,adminuser_realname,adminuser_selfconfig,adminuser_isshow,adminuser_language) values('"&adminuser_name&"','"&adminuser_password&"',"&admingroup_id&",'"&adminuser_realname&"','"&adminuser_selfconfig&"','"&adminuser_isshow&"','"&adminuser_language&"')"
Response.Write(sql)
ASO.Open sql,conn,1,3
Response.Redirect("messages.asp?mess_name=ADD_SUCCESS&back_page=adminusers_gl.asp?action=add")
ASO.Close
end if
End Function

'取得某管理员信息
Public Function AdminUsers_Xx(adminuser_id) 
sql="select adminuser_id,adminuser_name,adminuser_password,admingroup_id,adminuser_isshow,adminuser_selfconfig,adminuser_language,adminuser_realname from ce_adminusers where adminuser_id="&adminuser_id
ASO.Open sql,conn,1,3
if ASO.RecordCount=0 then
Response.Redirect("messages.asp?mess_name=GET_Xx_FAILURE&back_page=adminusers_gl.asp?action=list")
else
adminuser_name=ASO("adminuser_name")
adminuser_password=ASO("adminuser_password")
admingroup_id=ASO("admingroup_id")
adminuser_isshow=ASO("adminuser_isshow")
adminuser_selfconfig=ASO("adminuser_selfconfig")
adminuser_language=ASO("adminuser_language")
adminuser_realname=ASO("adminuser_realname")
end if
ASO.close
End Function

'修改某管理员
Public Function AdminUsers_Modideal(adminuser_id,adminuser_name,adminuser_password,admingroup_id,adminuser_isshow,adminuser_selfconfig,adminuser_language,adminuser_realname) 
sql="update ce_adminusers set adminuser_name='"&adminuser_name&"',adminuser_password='"&adminuser_password&"',admingroup_id="&admingroup_id&",adminuser_isshow='"&adminuser_isshow&"',adminuser_selfconfig='"&adminuser_selfconfig&"',adminuser_language='"&adminuser_language&"',adminuser_realname='"&adminuser_realname&"' where adminuser_id="&adminuser_id
response.Write(sql)
ASO.Open sql,conn,1,3
Response.Redirect("messages.asp?mess_name=MODIFY_SUCCESS&back_page=adminusers_gl.asp?action=list")
ASO.Close
End Function

'取得管理员列表
Public Function AdminUsers_List() 
sql="Select ce_admingroups.admingroup_name, ce_adminusers.adminuser_id,ce_adminusers.adminuser_name, ce_adminusers.adminuser_logintimes, ce_adminusers.adminuser_isshow FROM ce_admingroups INNER JOIN ce_adminusers ON ce_admingroups.admingroup_id = ce_adminusers.admingroup_id"
ASO.Open sql,conn,1,3
while not ASO.eof
if ASO("adminuser_isshow")="Y" then
show="是"
else
show="否"
end if
response.write"<tr><td align=right class=td1 width=27% height=25><p align=center>"&ASO("adminuser_name")&"</td><td width=30% align=right class=td1><div align=center>"&ASO("admingroup_name")&"</div></td><td width=13% align=right class=td1><div align=center>"&ASO("adminuser_logintimes")&"</div></td><td width=10% height=25 class=td2><div align=center>"&show&"</div></td><td width=10% class=td2><div align=center><a href=adminusers_gl.asp?action=modi&adminuser_id="&ASO("adminuser_id")&">修改</a></div></td><td width=10% class=td2><div align=center><a href=adminusers_gl.asp?action=del&adminuser_id="&ASO("adminuser_id")&">删除</a></div></td></tr>"
ASO.movenext
wend
ASO.Close
End Function

'删除管理员
Public Function AdminUsers_Del(adminuser_id) 
sql="delete from ce_adminusers where adminuser_id="&adminuser_id
ASO.Open sql,conn,1,3
Response.Redirect("messages.asp?mess_name=DEL_SUCCESS&back_page=adminusers_gl.asp?action=list")
ASO.Close
End Function

'获取所有管理员组列表
Public Function Get_AdminGroups() 
sql="select admingroup_id,admingroup_name from ce_admingroups where admingroup_language='"&LANGUAGE&"' order by admingroup_id asc"
ASO.Open sql,conn,1,3
response.Write(" <select name=admingroup_id>")
while not ASO.eof
response.Write("<option value="&ASO("admingroup_id")&">"&ASO("admingroup_name")&"</option>")
ASO.movenext
wend
response.Write("</select>")
ASO.Close
End Function

'获取所有管理员组列表,并选中当前所在管理员组
Public Function Get_AdminGroups_S() 
sql="select admingroup_id,admingroup_name from ce_admingroups where admingroup_language='"&LANGUAGE&"' order by admingroup_id asc"
ASO.Open sql,conn,1,3
response.Write(" <select name=admingroup_id>")
while not ASO.eof
if ASO("admingroup_id")=admingroup_id then
s="selected"
else
s=""
end if
response.Write("<option value="&ASO("admingroup_id")&" "&s&">"&ASO("admingroup_name")&"</option>")
ASO.movenext
wend
response.Write("</select>")
ASO.Close
End Function

'公用属性,供外部程序调用
Public Property Get AUName 
AUName = adminuser_name 
End Property

Public Property Get AUPassword 
AUPassword = adminuser_password 
End Property

Public Property Get AUGroupid 
AUGroupid = admingroup_id 
End Property

Public Property Get AUIsshow 
AUIsshow = adminuser_isshow 
End Property

Public Property Get AUSelfconfig 
AUSelfconfig = adminuser_selfconfig 
End Property

Public Property Get AURealname 
AURealname = adminuser_realname 
End Property

End Class
%>

adminusers_gl.asp代码如下:

以下为引用的内容:

<%
rem *****************通用网站管理系统***********************************
rem 页面功能:网站后台管理员添加修改表单
rem @author 蔡晓亮
rem @version 1.0
%>
<%
Response.Buffer=true
Response.Expires=0
%>
<!--#include file="../include/common.config.asp"-->
<!--#include file="../include/common.function.asp"-->
<!--#include file="../include/md5.asp"-->
<!--#include file="adminusers_class.asp"-->
<%
action=trim(replace(request("action"),"'",""))
Set GL = New AdminUsersGl      '建立类的实例
%>
<%
if action="add" then
adminuser_name=trim(replace(request("adminuser_name"),"'",""))
adminuser_password=md5(trim(replace(request("adminuser_password"),"'","")),32)
admingroup_id=trim(replace(request("admingroup_id"),"'",""))
adminuser_realname=trim(replace(request("adminuser_realname"),"'",""))
adminuser_selfconfig=trim(replace(request("adminuser_selfconfig"),"'",""))
adminuser_isshow=trim(replace(request("adminuser_isshow"),"'",""))
adminuser_language=LANGUAGE

if adminuser_name<>"" then
GL.AdminUsers_Add adminuser_name,adminuser_password,admingroup_id,adminuser_realname,adminuser_selfconfig,adminuser_isshow,adminuser_language
end if
end if

if action="modi" then
adminuser_id=trim(replace(request("adminuser_id"),"'",""))
GL.AdminUsers_Xx adminuser_id
end if

if action="modideal" then
adminuser_id=trim(replace(request("adminuser_id"),"'",""))
adminuser_name=trim(replace(request("adminuser_name"),"'",""))
adminuser_password_n=trim(replace(request("adminuser_password_n"),"'",""))
adminuser_password_o=trim(replace(request("adminuser_password_o"),"'",""))
admingroup_id=trim(replace(request("admingroup_id"),"'",""))
adminuser_isshow=trim(replace(request("adminuser_isshow"),"'",""))
adminuser_selfconfig=trim(replace(request("adminuser_selfconfig"),"'",""))
adminuser_realname=trim(replace(request("adminuser_realname"),"'",""))
adminuser_language=LANGUAGE

if adminuser_id<>"" and  adminuser_password_n<>"" then
adminuser_password_n=md5(adminuser_password_n,32)
'response.Write(adminuser_password_n)
GL.AdminUsers_Modideal adminuser_id,adminuser_name,adminuser_password_n,admingroup_id,adminuser_isshow,adminuser_selfconfig,adminuser_language,adminuser_realname
end if
if adminuser_id<>"" and adminuser_password_n="" then
'response.Write(adminuser_password_n&"cxl")
GL.AdminUsers_Modideal adminuser_id,adminuser_name,adminuser_password_o,admingroup_id,adminuser_isshow,adminuser_selfconfig,adminuser_language,adminuser_realname
end if
end if

if action="del" then
adminuser_id=trim(replace(request("adminuser_id"),"'",""))
GL.AdminUsers_Del adminuser_id
end if
%>
<%
title="管理员管理"
css="<link rel=stylesheet href=style/css/style.css type=text/css>"
body="<body topmargin=5 leftmargin=5 bgcolor=#555555>"
ShowHeadHtml title,LANGUAGE,css,body   '调用公用函数产生头部代码
%>

<%if action="add" then%>
<table cellpadding="0" cellspacing="1" border="0" width="100%" class="border" align=center height="85">
<form name="form1" method="post" action="adminusers_gl.asp?action=add">
  <tr>
    <td height="50" colspan="2" align="center" bgcolor="#f1f1f1"><font class="title"><b><%=title%></b></font></td>
  </tr>
 <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"><strong>用户名 :</strong></td>
    <td width="77%" align="left" bgcolor="#f1f1f1"> <input name="adminuser_name" type="text" size="40"></td>
  </tr>
  <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"><strong>密 码 :</strong></td>
    <td width="77%" align="left" bgcolor="#f1f1f1"> <input name="adminuser_password" type="password" size="40"></td>
  </tr>
  <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"><strong>重复密码 :</strong></td>
    <td width="77%" align="left" bgcolor="#f1f1f1"> <input name="adminuser_password2" type="password" size="40"></td>
  </tr>
  <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"><strong><span class="td1">是否有效</span> :</strong></td>
    <td width="77%" align="left" bgcolor="#f1f1f1"> <input type="radio" value="Y" name="adminuser_isshow" checked>
  是 <input type="radio" value="N" name="adminuser_isshow">否</td>
  </tr>
  <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"><strong>真实姓名 :</strong></td>
    <td width="77%" align="left" bgcolor="#f1f1f1"> <input name="adminuser_realname" type="text" size="40"></td>
  </tr>
  <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"><strong>管理员组 :</strong></td>
    <td width="77%" align="left" bgcolor="#f1f1f1">
<%
GL.Get_AdminGroups
%>
 </td>
  </tr>
  <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"><strong>备 注 :</strong></td>
    <td width="77%" align="left" bgcolor="#f1f1f1">
       <textarea name="adminuser_selfconfig" cols="60" rows="10"></textarea></td>
  </tr>
  <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"> </td>
    <td width="77%" align="left" bgcolor="#f1f1f1">
     <input type="submit" name="submit" value="添加">
  <input type="reset" name="reset" value="重置">
    </td>
  </tr>
  </form>
</table>
<%end if%>
<%if action="modi" then%>
<table cellpadding="0" cellspacing="1" border="0" width="100%" class="border" align=center height="85">
<form name="form1" method="post" action="adminusers_gl.asp?action=modideal">
  <tr>
    <td height="50" colspan="2" align="center" bgcolor="#f1f1f1"><font class="title"><b><%=title%></b></font></td>
  </tr>
 <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"><strong>用户名 :</strong></td>
    <td width="77%" align="left" bgcolor="#f1f1f1"> <input name="adminuser_id" type="hidden" value=<%=adminuser_id%>><input name="adminuser_name" type="text" size="40" value="<%=GL.AUName%>"></td>
  </tr>
  <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"><strong>新 密 码 :</strong></td>
    <td width="77%" align="left" bgcolor="#f1f1f1"> <input name="adminuser_password_n" type="password" size="40"><input name="adminuser_password_o" type="hidden" value="<%=GL.AUPassword%>"></td>
  </tr>
  <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"><strong>重复新密码 :</strong></td>
    <td width="77%" align="left" bgcolor="#f1f1f1"> <input name="adminuser_password2_n" type="password" size="40"></td>
  </tr>
  <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"><strong><span class="td1">是否有效</span> :</strong></td>
    <td width="77%" align="left" bgcolor="#f1f1f1"> <input type="radio" value="Y" name="adminuser_isshow" <%if GL.AUIsshow="Y" then%>checked<%end if%>>
  是 <input type="radio" value="N" name="adminuser_isshow" <%if GL.AUIsshow="N" then%>checked<%end if%>>否</td>
  </tr>
  <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"><strong>真实姓名 :</strong></td>
    <td width="77%" align="left" bgcolor="#f1f1f1"> <input name="adminuser_realname" type="text" size="40" value="<%=GL.AURealname%>"></td>
  </tr>
  <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"><strong>管理员组 :</strong></td>
    <td width="77%" align="left" bgcolor="#f1f1f1">
<%
GL.Get_AdminGroups_S
%>
 </td>
  </tr>
  <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"><strong>备 注 :</strong></td>
    <td width="77%" align="left" bgcolor="#f1f1f1">
       <textarea name="adminuser_selfconfig" cols="60" rows="10"><%=GL.AUSelfconfig%></textarea></td>
  </tr>
  <tr align="center">
    <td width="23%" height="32" align="right" bgcolor="#f1f1f1"> </td>
    <td width="77%" align="left" bgcolor="#f1f1f1">
     <input type="submit" name="submit" value="添加">
  <input type="reset" name="reset" value="重置">
    </td>
  </tr>
  </form>
</table>
<%end if%>
<%
if action="list" then
%>
<table width="100%" align=center border="0" cellspacing="1" cellpadding="0"> 
 <tr><td colspan=6></td></tr>
 <tr bgcolor="#999999"><td align=right class=td1 width="27%" height="25">
  <p align="center">名称</td>
   <td width="30%" align=right class=td1><div align="center">所属组</div></td>
   <td width="13%" align=right class=td1><div align="center">登陆次数</div></td>
   <td width="10%" height="25" class=td2><div align="center">是否有效</div></td>
 <td width="10%" class=td2><div align="center">修改</div></td>
 <td width="10%" class=td2><div align="center">删除</div></td>
 </tr>  
<%
GL.AdminUsers_List
%>
 <tr>
   <td height="25" colspan="6" align=right bgcolor="#F1F1F1" class=td1> </td>
    </tr>
</table>
<%end if%>
<%
Set GL = Nothing
%>
<%
ShowBottomHtml    '调用公用函数产生尾部代码
%>

以上程序写的不是很好,但结构还是比较清晰的,在adminusers_gl.asp中分别对action进行判断,去调用类中的不同方法,在下面页面部分,尽量使ASP代码减少,这样美工就能很轻松的修改程序界面了!