ASP代碼的對(duì)象化
更新時(shí)間:2006年10月12日 00:00:00 作者:
提起asp很多人就認(rèn)為是一堆html腳本和被括在<%和%>之中的一些代碼還有就是一些javascript腳本等籌在一起的一些代碼的集合,這樣的代碼,再加上各類的不同格式的注釋,看起來(lái)就一個(gè)字:亂。也不管別人能不能看得懂,只要是能實(shí)現(xiàn)自己的目的就可以了,因?yàn)閍sp的代碼也是腳本,給了客戶也不可能不被人看到其中的內(nèi)容,經(jīng)多包容在dll中一部分業(yè)務(wù)邏輯,但是還是覺(jué)得asp代碼是最不值錢的代碼,沒(méi)有人回去購(gòu)買,可以隨時(shí)從別人的網(wǎng)站中查看源碼的形式得到別人辛辛苦苦編寫(xiě)出來(lái)的獨(dú)特風(fēng)格的東東。這些原因使asp的發(fā)展成為了一種編的快忘的也快的代碼,可讀性,維護(hù)性也是各種語(yǔ)言中最為差的代碼。
其實(shí),asp代碼也可以像其他語(yǔ)言一樣的面向?qū)ο?,模塊化,將很多頁(yè)面集成封裝到一個(gè)類中,運(yùn)用類中的不同方法來(lái)顯示不同的頁(yè)面,這樣你可以將同一業(yè)務(wù)邏輯下的頁(yè)面和邏輯封裝到一個(gè)類里,用不同的方法來(lái)實(shí)現(xiàn)。說(shuō)了這么多,可能大家的思路都亂了,趕快給大家一點(diǎn)范例來(lái)看看:
<%
'****************************************
'* 類名:clswebworkflowlog
'* 功能:工作流日志跟蹤類
'****************************************
class clswebworkflowlog
'定義公開(kāi)屬性存放connection對(duì)象
public activeconnection
private oresponse
'========================================
'= 過(guò)程名:main
'= 參 數(shù):
'= 功 能:主調(diào)函數(shù)
'= 根據(jù)不同動(dòng)作參數(shù)執(zhí)行不同的操作
'= 返回值:
'========================================
sub main()
select case request("act")
case "list"
list()
case else
list()
end select
end sub
'========================================
'= 過(guò)程名:list
'= 參 數(shù):
'= 功 能:顯示列表畫(huà)面
'= 返回值:
'========================================
sub list()
dim ors
set ors = activeconnection.execute("select *,(select name from wf_config where id=w.wf_id) as wfname from wf_log w where step_id=1 and user_id=" & session("usr")("uid"))
'(select * from wf_log where id in (select max(id),wf_id,tab_id,rec_id from wf_log group by wf_id,tab_id,rec_id where wf_id= and tab_id=))
%> <p align="left"><img border="0" src="../images/desk/workflow-new.gif" width="32" height="32"><font color="#ff0000"><b>待辦事宜:</b></font></p>
<center>
<table bgcolor="#ffffff" border="1" bordercolordark="#ffffff" bordercolorlight="#c0c0c0" cellspacing="0" width="99%" height="25">
<tr>
<td bgcolor="#808080" height="15"><font color="#ffffff">流程名稱</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">申請(qǐng)人</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">申請(qǐng)時(shí)間</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">完成時(shí)間</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">狀態(tài)</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">操作</font></td>
</tr><%
do while not ors.eof
dim maxid,next_id
if glbfunc.getmaxid(ors("id").value,activeconnection,maxid,next_id) then
%><tr>
<td bgcolor="#ffffff" height="19"><%=ors("wfname")%></a></td>
<td bgcolor="#ffffff" height="19"><%=session("usr")("name")%> </td>
<td bgcolor="#ffffff" height="19"><%=ors("exetime")%> </td>
<td bgcolor="#ffffff" height="19"> </td>
<td bgcolor="#ffffff" height="19"><%=glbfunc.getcurzt(ors("id").value,activeconnection)%></td>
<td bgcolor="#ffffff" height="19"><p align="left"><a href="../pubexetab/pubexetab.asp?act=view&tab_id=<%=ors("tab_id")%>&id=<%=ors("rec_id")%>"><img src="../images/action/view.gif" border="0" alt="詳細(xì)" width="16" height="16"></a> <a href="javascript:newin('wfimage.asp?act=list&id=<%=ors("wf_id")%>&bz=1&step_id=<%=next_id%>',true,false,false,false,true);"><img src="../images/action/lcchuli.gif" border="0" alt="流程追蹤" width="16" height="16"></a> </p></td><%
end if
%></tr><%
ors.movenext
loop
%></table>
</center>
<%
end sub
end class
'****************************************
'* 類結(jié)束
'****************************************
'****************************************
'asp頁(yè)面開(kāi)始
'****************************************
'輸出標(biāo)準(zhǔn)html頭
glbfunc.writehead
dim owebworkflowlog
set owebworkflowlog = new clswebworkflowlog
set owebworkflowlog.activeconnection = glbfunc.getadoconnection
owebworkflowlog.main
glbfunc.writetail()
%>
可以添加更多的方法,這樣這一個(gè)類就能完成以前多個(gè)asp文件的功能。訪問(wèn)的時(shí)候,在 .asp之后加上參數(shù)(要訪問(wèn)哪個(gè)函數(shù))即可區(qū)分出來(lái)。
其實(shí),asp代碼也可以像其他語(yǔ)言一樣的面向?qū)ο?,模塊化,將很多頁(yè)面集成封裝到一個(gè)類中,運(yùn)用類中的不同方法來(lái)顯示不同的頁(yè)面,這樣你可以將同一業(yè)務(wù)邏輯下的頁(yè)面和邏輯封裝到一個(gè)類里,用不同的方法來(lái)實(shí)現(xiàn)。說(shuō)了這么多,可能大家的思路都亂了,趕快給大家一點(diǎn)范例來(lái)看看:
<%
'****************************************
'* 類名:clswebworkflowlog
'* 功能:工作流日志跟蹤類
'****************************************
class clswebworkflowlog
'定義公開(kāi)屬性存放connection對(duì)象
public activeconnection
private oresponse
'========================================
'= 過(guò)程名:main
'= 參 數(shù):
'= 功 能:主調(diào)函數(shù)
'= 根據(jù)不同動(dòng)作參數(shù)執(zhí)行不同的操作
'= 返回值:
'========================================
sub main()
select case request("act")
case "list"
list()
case else
list()
end select
end sub
'========================================
'= 過(guò)程名:list
'= 參 數(shù):
'= 功 能:顯示列表畫(huà)面
'= 返回值:
'========================================
sub list()
dim ors
set ors = activeconnection.execute("select *,(select name from wf_config where id=w.wf_id) as wfname from wf_log w where step_id=1 and user_id=" & session("usr")("uid"))
'(select * from wf_log where id in (select max(id),wf_id,tab_id,rec_id from wf_log group by wf_id,tab_id,rec_id where wf_id= and tab_id=))
%> <p align="left"><img border="0" src="../images/desk/workflow-new.gif" width="32" height="32"><font color="#ff0000"><b>待辦事宜:</b></font></p>
<center>
<table bgcolor="#ffffff" border="1" bordercolordark="#ffffff" bordercolorlight="#c0c0c0" cellspacing="0" width="99%" height="25">
<tr>
<td bgcolor="#808080" height="15"><font color="#ffffff">流程名稱</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">申請(qǐng)人</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">申請(qǐng)時(shí)間</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">完成時(shí)間</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">狀態(tài)</font></td>
<td bgcolor="#808080" height="15"><font color="#ffffff">操作</font></td>
</tr><%
do while not ors.eof
dim maxid,next_id
if glbfunc.getmaxid(ors("id").value,activeconnection,maxid,next_id) then
%><tr>
<td bgcolor="#ffffff" height="19"><%=ors("wfname")%></a></td>
<td bgcolor="#ffffff" height="19"><%=session("usr")("name")%> </td>
<td bgcolor="#ffffff" height="19"><%=ors("exetime")%> </td>
<td bgcolor="#ffffff" height="19"> </td>
<td bgcolor="#ffffff" height="19"><%=glbfunc.getcurzt(ors("id").value,activeconnection)%></td>
<td bgcolor="#ffffff" height="19"><p align="left"><a href="../pubexetab/pubexetab.asp?act=view&tab_id=<%=ors("tab_id")%>&id=<%=ors("rec_id")%>"><img src="../images/action/view.gif" border="0" alt="詳細(xì)" width="16" height="16"></a> <a href="javascript:newin('wfimage.asp?act=list&id=<%=ors("wf_id")%>&bz=1&step_id=<%=next_id%>',true,false,false,false,true);"><img src="../images/action/lcchuli.gif" border="0" alt="流程追蹤" width="16" height="16"></a> </p></td><%
end if
%></tr><%
ors.movenext
loop
%></table>
</center>
<%
end sub
end class
'****************************************
'* 類結(jié)束
'****************************************
'****************************************
'asp頁(yè)面開(kāi)始
'****************************************
'輸出標(biāo)準(zhǔn)html頭
glbfunc.writehead
dim owebworkflowlog
set owebworkflowlog = new clswebworkflowlog
set owebworkflowlog.activeconnection = glbfunc.getadoconnection
owebworkflowlog.main
glbfunc.writetail()
%>
可以添加更多的方法,這樣這一個(gè)類就能完成以前多個(gè)asp文件的功能。訪問(wèn)的時(shí)候,在 .asp之后加上參數(shù)(要訪問(wèn)哪個(gè)函數(shù))即可區(qū)分出來(lái)。
相關(guān)文章
面向小白visual studio 2019 添加第三方庫(kù)教程(入門)
這篇文章主要介紹了面向小白visual studio 2019 添加第三方庫(kù)教程,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
關(guān)于處理GET方式提交的含有特殊字符的參數(shù)
關(guān)于處理GET方式提交的含有特殊字符的參數(shù)...2006-08-08
asp中使用MSXML2.DOMDocument處理XML數(shù)據(jù)時(shí)的注意事項(xiàng)
這篇文章主要介紹了asp中使用MSXML2.DOMDocument處理XML數(shù)據(jù)時(shí)的注意事項(xiàng),本文給出了4個(gè)需要注意的問(wèn)題,需要的朋友可以參考下2014-08-08
asp下多個(gè)域名后綴同時(shí)查詢的域名查詢系統(tǒng)
asp下多個(gè)域名后綴同時(shí)查詢的域名查詢系統(tǒng)...2007-03-03
在不刷新頁(yè)面的情況下調(diào)用遠(yuǎn)程asp腳本
在不刷新頁(yè)面的情況下調(diào)用遠(yuǎn)程asp腳本...2007-01-01

