大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 网络媒体 -> FLASH -> MacromediaColdFusionMX开发者(4)

MacromediaColdFusionMX开发者(4)

时间: 2021-07-31 作者:daque

第六期:coldfusionmx中的轮回媒介      任何一种步调再大略也要完备确定的论理和算法,coldfusion也不不同。即使不过靠大略的标签的雕砌,是没辙真实实行企业贸易论理的。并且,我在这边特殊确定的提出一点,即是大略一致不即是功效微弱。暂时,搜集本领兴盛到了一个提防展现的期间,即是每一个开拓出来的搜集运用,要在实行论理的同声,完备让存户有充分的用户领会是另一个探求的目的。flash+flashremoting+cf serverside script即是一种极简直验的开拓本领。而对于开拓东西,稠密的开拓厂商更是在东西的易用性上做足了作品,微软vs.net开拓平台的完备一致性,oracle9i jdeveloper开拓j2ee步调的wizard办法,macromedia dreamweavermx稠密的效劳器端的剧本谈话的扶助,都是在东西易用性上的一种展现。咱们即日要给大师解说的即是大略易用的coldfusion loop。经过cf中各别的轮回嵌套,不妨实行很多在cf中编制程序的论理。      这边的媒介还要弥补证明一点,操纵access数据库时的华文处置的本领,即使哪位开拓者有爱好,请去这边察看并介入商量:http://www.flashempire.net/showthread.php?s=a85407ff13de51915c82a57b7eb2e1ee&threadid=125029第一局部 看看cf中的过程遏制和轮回咱们点击dreamweavermx中insert面板里的cf flow标签,会看到如次的一条龙图标:

macromediacoldfusionmx开发者(4)图1

这行图标简直实行了coldfusion中最要害的过程和轮回处置。提出过程,咱们在进修任何一门谈话的进程中第一个交战到的即是if…then…else这个过程遏制语句。想必很多从事网页安排的伙伴都不行制止的交战过这个论理。这个论理是大略的,然而是最常用到的。在上海图书馆中,用笔墨表露“if else elsif”即是运用cf中的if过程遏制。点击标有笔墨“if”的功夫,咱们用原代码的办法查看页面,就会看到在光标地方出仍旧插入了<cfif></cfif>这个代码段。咱们把一切在cf顶用<cfxxx>…</cfxxx>都看作一个封锁的代码段,尽管它有多长,也尽管它有多短。运用cfif标签,规范的大略刻画该当是如许的:<cfif 你要确定的前提>       你要做的工作:不妨是一条龙输入,也不妨是几何个其余的搀杂的代码段。</cfif>那么咱们常常运用少许确定前提的操纵符来确定cfif的过程的走向,由于在cfif的论理确定中,惟有真(1)和假(0)两种,即使前提为真,就做cfif标签中央嵌套的工作,即使为假,就跳出这个论理,去向理下一个论理。那么cf中的操纵符特殊的人情话,它运用谈话表白确定,而不是标记。比方,“=”在cfif的前提操纵符中要表白为“eq”,“>”要表白为“greater than”大概“gt”。即使咱们确定a能否即是b,那么在cf中要如许写:<cfif a eq b><cfset a=b></cfif>运用精细的前提操纵符请看下表:operator(证明)缩写operator(证明)缩写is(==)equal,eqgreat than or equal to(>=)gte,geis not(<>)not equal,neqless than or equal to(<=)lte,legreater than(>)gtcontains(囊括)  less than(<)ltdoes not contain(不囊括)  那么其余的else和elsif是嵌套在完备的cfif中的,底下这段代码是一个完备的证明:<cfif 表白式1>代码段1<cfelseif 表白式2>代码段2<cfelse>代码段3</cfif>即使表白式一创造,则做代码段1,即使表白式1不可立,则确定表白式2能否创造,即使表白式2创造,则做代码段2,要不做代码段3。诸位没有开拓普通的伙伴,不妨试试这段小代码,之后运转一下就领会截止了。<cfif 1 is 0><cfoutput>1</cfoutput><cfelseif 2 is 0><cfoutput>2</cfoutput><cfelse><cfoutput>3</cfoutput></cfif>开拓步调咱们在遏制过程的进程中,还用到了switch…case本领,在coldfusion的编制程序办法中同样扶助。而对于switch…case本领,运用起来也是很大略的,这边举行一下大略的解说。点击

macromediacoldfusionmx开发者(4)图2

这三个图标来实行cfswitch的操纵,手段在乎让开拓者举行同一种表白式对于多种截止值的前提下举行过程的采用。点击了左边的图标之后,咱们会看到底下的窗口:

macromediacoldfusionmx开发者(4)图3

语法操纵如次:<cfswitch expression= "#var#">       <cfcase value= "x1">              action1       </cfcase>       <cfcase value= "x2">              action2       </cfcase>       …       <cfdefaultcase>              default action       </cfdefaultcase></cfswitch>语法证明特殊的大略,对于表白式expression,用cfcase的value属性来反应表白式中#var#的值,而后对准各别的值,来相应各别的action,做各别的操纵,即使没有值配合,那么做cfdefaultcase标签中的默许action。来个macromedia官方规范的步调段看看:<cfquery name = "getemployees" datasource = "cfsnippets">select emp_id, firstname, lastname, email, phone, departmentfrom employees</cfquery><h3>cfswitch example</h3><p>each time the case is fulfilled, the specific information is printed;if the case is not fulfilled, the default case is output </p><cfoutput query="getemployees"><cfswitch expression="#trim(department)#"><cfcase value="sales">#firstname# #lastname# is in <b>sales</b><br><br></cfcase><cfcase value="accounting">#firstname# #lastname# is in <b>accounting</b><br><br></cfcase> <cfcase value="administration">#firstname# #lastname# is in <b>administration</b><br><br></cfcase><cfdefaultcase>#firstname# #lastname# is not in sales, accounting, oradministration.<br><br></cfdefaultcase></cfswitch></cfoutput>这段代码即是经过了cfswitch来表露cfmx默许数据源cfsnippets中employees表中的职员,而办法用department(地方的部分)变量在cfswitch中cfcase的各别value来辨别表露飞来。咱们来看cf flow面板中的其余3个图标汇合:

macromediacoldfusionmx开发者(4)图4

,这3个图标从左到右,顺序是cftry、cfcatch、cfthrow。这3个tag在举行cf运用步调的编写调节和测试进程中,起到了要害的效率。这3个标签本质上是举行了运用步调的缺点和特殊的处置。干什么要有缺点和特殊的处置?作家自己觉得有两个大的上面的效率。第一,即是指示开拓职员运用步调堕落或特殊,同声使体例在托付给存户之后展示缺点或特殊后,不妨运用各别办法的处置给存户一个真实的发觉。第二,即是缩小运用步调蒙受报复的大概。即使咱们不运用缺点和特殊处置,那么咱们常常不妨看到,即使步调处置堕落,会在web欣赏器里表露出不该展示的消息,比方数据库表名,字段名,以至对数据库的操纵之类。本来那些堕落消息是不该当对外表露在web欣赏器里的。咱们在编写coldfusion运用步调的功夫,该当提防一下大概展示的缺点典型,进而能运用cfmx administrator里的设定和cftry等tag贯串来处置那些缺点。咱们常常遇到的缺点分为五类:语法缺点、数据库操纵缺点、运用效劳器(application server)情况缺点、论理缺点和考证缺点。依照那些缺点的要害性来排序,第一位的即是运用效劳器情况缺点,那些缺点由application server爆发,它大概会引导所有coldfusion运用不许运转。以是排在最为要害的场所。其余的咱们该当力求缩小语法和论理缺点,由于这种缺点不妨经过连接的debug来矫正,并且这类缺点的调节和测试比拟耗费精神。咱们先来看下图,这是我操纵cfmx administrator->debugging settiongs的进程中的一个截图:

macromediacoldfusionmx开发者(4)图5

即使你采用了enable robust exception information这个选项,在cfm页面展示缺点的功夫,将经过欣赏器不妨看到application表露的运用缺点消息,囊括页面沙盘物理路途、页面包车型的士uri,缺点行数(不确定精确)、操纵的数据库语句、数据源称呼、java仓库的trace办法之类。如许个中少许消息明显是你在把名目提交给存户后不蓄意表露的,以是在production server上安置完coldfusionmx之后,要把这个选项的勾选去掉。经过大略的引见<cftry>和<cfcatch>之后,大概很多人都不会运用,那么咱们用一个最最大略的数据库的操纵来证明缺点处置的效率。回顾先前的步调,咱们先写下一段大略的数据库query步调段:<cfquery name="demo" datasource="cfsnippets">select      emp_id, lastnamefrom         employees</cfquery>即使咱们把cfsnippets的称呼改成xxx,那么咱们看看会爆发什么情景?请看底下的截图:

上头的这张截图是cf server机动给出的缺点消息表露页面。这个页面上,看看咱们供给了哪些要害的消息给来自外部的考察职员?数据源称呼,文献的物理路途,sql查问的语句。那些消息实足给那些带有歹意的考察者以无隙可乘。那么咱们该当运用<cftry>和<cfcatch>来制止那些报错消息的表露。窜改此后的代码如次:<cftry><cfquery name="demo" datasource="xxx">select      emp_id, lastnamefrom         employees</cfquery><cfcatch type="database">       抱歉!咱们不许贯穿到数据库效劳器!特殊对不起!       <cfabort></cfcatch></cftry>之后咱们看到的欣赏器中的表露消息为:“抱歉!咱们不许贯穿到数据库效劳器!特殊对不起!”如许,很多特殊要害的,波及到安定性的消息就被养护了起来,同样也就贬低了效劳器被歹意报复的大概性。第二局部 在原有的普通之上深刻一下很多开拓职员在进修了五个局部的基础coldfusionmx的常识后,仍旧不妨举行少许大略的运用步调编写了。那么咱们就在原有的普通之上,深刻一下。解说coldfusionmx的最新的cfcomponent的基础常识。对于本教程的中的少许cfcomponent的材料根源于macromedia官方。在发端解说cfcomponent(以次简称cfc)之前,先来一段大略的大纲,让诸位开拓职员在完全上对cfc举行一下引见。很多开拓职员大概对asp都比拟熟习,asp不妨和com,com+贯串起来运用而com即是鉴于微软的一种组件本领。说这种本领高超也罢,易用也好,从我这边觉得,组件开拓本领即是供给给运用步调一组高可用性的代码。什么是可用性?在英文里即是reuse。专科一点即是代码重用。cfc也不不同,经过大略的将很多各别功效的cfml代码段举行确定论理的拉拢,并付与各别的考察办法,就形成了cfc。那么cfc比拟对于往日的cf的自设置标签又有什么上风和各别?cfc最大的便宜即是不包括展现本质的代码,也即是说,一个cfc具备那种简单的论理,而后经过各别的挪用办法和附加性的化装标签来表露给外部各别的截止,是实足适合web本领开拓的需要,那即是展现与论理辨别。而,custom tag则不是如许,它是结构一个function,不妨把展现与论理混在一道,经过其余cfm页面包车型的士操纵来表露截止。再有一个各别是cfc是一种东西,具备各别的考察办法,也具备了method的进口操纵办法,也具备了参数遏制办法。即使上头这局部证明领会比拟劳累的话,那么咱们用一个常常开拓的模块来证明题目。咱们常常在开拓互动性网站的功夫,常常会开拓用户备案和考证模块,依照普遍的开拓办法,会有很多个页面,比方login.cfm、checkuser.cfm之类一堆的页面来举行用户的登录(备案)操纵。咱们的论理代码会写在一切的须要处置的后盾文献中。那么会展示何种烦杂的局面?用<cfquery>构成各别的数据库操纵代码段来举行用户名和暗号的搜索,归来搜索截止,举行form表单输出值和数据库截止的考证,经过各别页面上的各别的嵌入性的论理代码来相映用户的各别操纵。如许的开拓办法不是不不妨,然而咱们倡导cf开拓职员沿用一种更进步的开拓办法cfc举行相映功效的开拓。那么开拓沟通功效模块的cfc是一种什么格式的开拓思绪呢?咱们不妨把须要的代码段汇合在一道,经过私有的形成cfc的tag把那些代码段形成私有的components,其余,付与它们各别的method。仍旧对准用户备案和登录考证的功效模块,咱们换成这种思绪:l         设置一个user object,把一切对于用户的通用操纵封装在这个object里l         设置对于user object的操纵本领,比方add(),delete(),update(),get()之类少许通用的操纵本领,同样也不妨再减少少许,比方verifypassword(),getemail()之类。l         对于各别用户传播各别的参数给一定的本领来实行相映功效。好了,不必我说了,大师仍旧不妨辨别出运用cfc的便宜:可用性强,开拓功效高,扩充性强。那么,咱们用什么来结构一个cfc呢?很搀杂?令人头疼?都不是,用基础的cfml语法常识,附加几个一定的结构cfc的tag就不妨实行了。那么结构cfc的几个tag如次:l         <cfcomponent>设置一个cfcl         <cffunction>设置一个cfc中的操纵本领(method)l         <cfargument>设置method接受的参数l         <cfreturn>归来一个值,大概从method归来。咱们此刻结构一个特殊大略的cfc,看底下的代码:<!--- browser id component ---><cfcomponent>    <!--- is the browser ie? --->    <cffunction name="isie">                               <!--- init variable --->                               <cfset result="no">                               <!--- look for ie identifier --->                               <cfif findnocase("msie", cgi.http_user_agent)>                                              <!--- yep, got it --->                                              <cfset result="yes">                               </cfif>                               <!--- return result --->               <cfreturn result>               </cffunction></cfcomponent>文献保存变成browser.cfc,咱们大师不妨看到,一切的cf代码在<cfcomponent></cfcomponent>标签之间。这个cfc有一个function叫作isie,手段是确定欣赏器的典型。默许的截止是no,那么即使检验和测定出有msie这个串(不分巨细写),截止为true。这个function归来的值即是result。很大略是否?在结构好browser.cfc这个component之后,怎样运用这个browser.cfc呢?在寄存browser.cfc的目次下再天生一个test.cfm文献,这个文献中的代码运用底下的编写办法:<!--- invoke browser cfc ---><cfinvoke component="browser"                     method="isie"                     returnvariable="result_ie"><!--- feedback ---><cfoutput>your browser is:<br>ie: #yesnoformat(result_ie)#<br></cfoutput>之后实行test.cfm这个文献,获得的截止是:your browser is:ie: yestest.cfm这个文献运用了<cfinvoke>这个标签挪用了browser这个cfc,而且挪用了isie这个本领,归来的值是运用result_ie。上头的cfc不过一个确定ie欣赏器的步调,底下来个全的:<cfcomponent><!--- is the browser ie? ---><cffunction name="isie"       returntype="boolean"       hint="is browser microsoft ie"><!--- if no browser id passed, used current ---><cfargument name="browser"       required="no"       default="#cgi.http_user_agent#"       hint="browser id, defaults to cgi id"><!--- init variable ---><cfset result="no"><!--- look for ie identifier ---><cfif findnocase("msie", browser)>  <!--- yep, got it --->  <cfset result="yes"></cfif><!--- return result ---><cfreturn result></cffunction><!--- is the browser netscape? ---><cffunction name="isnetscape"       returntype="boolean"       hint="is browser netscape"><!--- if no browser id passed, used current ---><cfargument name="browser"       required="no"       default="#cgi.http_user_agent#"       hint="browser id, defaults to cgi id"><!--- init variable ---><cfset result="no"><!--- look for netscape identifier and no ie identifier --->  <cfif findnocase("mozilla", browser) and not findnocase("msie", browser)>  <!--- yep, got it --->    <cfset result="yes">  </cfif><!--- return result ---><cfreturn result></cffunction><!--- is the browser dreamweaver? ---><cffunction name="isdreamweaver"       returntype="boolean"       hint="is browser dreamweaver"><!--- if no browser id passed, used current ---><cfargument name="browser"       required="no"       default="#cgi.http_user_agent#"       hint="browser id, defaults to cgi id"><!--- init variable ---><cfset result="no"><!--- look for dw identifier ---> <cfif findnocase("mmhttp", browser)>   <!--- yep, got it --->   <cfset result="yes"> </cfif><!--- return result ---><cfreturn result></cffunction><!--- identify a browser       returns: ie - internet explorer                            ns ?netscape                            dw ?dreamweaver                            empty string is unknown---><cffunction name="identify"       returntype="string"       hint="identify a browser"><!--- if no browser id passed, used current ---><cfargument name="browser"       required="no"       default="#cgi.http_user_agent#"       hint="browser id, defaults to cgi id"><!--- init variable ---><cfset result=""><cfif isie(browser)>  <cfset result="ie"><cfelseif isnetscape(browser)>  <cfset result="ns"><cfelseif isdreamweaver(browser)>  <cfset result="dw"></cfif><!--- return result ---><cfreturn result></cffunction></cfcomponent>上头的第2个cfc搀杂了少许,咱们掩盖保存变成browser.cfc,这个cfc中包括了4个function(method):isie,尝试欣赏器能否为ms的欣赏器;isnescape尝试能否是nescape(mozilla)欣赏器;isdreamweaver尝试能否内嵌dreamweaver;identify归来一切的截止,即使之上3种都不是,归来空串。步调还为cffunction增添了两个新的属性:returntype是对归来值的一个典型确认(validate),即使不是returntype所刻画的典型,将会表露一个缺点。其余,咱们的function中还增添了<cfargument>这个标签,来设定browserid这个值,并且设定required属性为no是保护有检验和测定不出来的browserid的功夫,供给一个默许的cgi id。即使required的属性设定于yes,那么一定的参数传播即使不适合诉求,就会报错。咱们不妨经过底下的这个test.cfm步调来挪用上头的这段搀杂的browser.cfc:<!--- check for ie ---><cfinvoke component="browser"       method="isie"       returnvariable="result_ie"><!--- check for netscape ---><cfinvoke component="browser"       method="isnetscape"       returnvariable="result_ns"><!--- check for dw ---><cfinvoke component="browser"       method="isdreamweaver"       returnvariable="result_dw"><!--- identify browser ---><cfinvoke component="browser"       method="identify"       returnvariable="result_id"><!--- feedback ---><cfoutput>your browser is:<br>ie: #yesnoformat(result_ie)#<br>ns: #yesnoformat(result_ns)#<br>dw: #yesnoformat(result_dw)#<br>id: #result_id#<br></cfoutput>表露的截止为:your browser is:ie: yesns: nodw: noid: ie本来咱们不妨用两种办法从里面查看一个cfc,第一种即是经过径直的url考察。上头第2个最后的browser.cfc在我本机的url为:http://localhost:8500/cfdev/browser.cfc输出这个url后,会先看到cf administrator的界面,输出登录的暗号后,体例会汇报一个browser.cfc的精细消息给开拓职员,截图如次:

macromediacoldfusionmx开发者(4)图6

上海图书馆精细的引见了这个cfc的构造和精细消息,想要看到这个基础是必需有cf server administrator的暗号权力哦!第二种本领即是经过dwmx来import这个cfc,进而不妨看到dwmx会机动的辨别出这个cfc了:

macromediacoldfusionmx开发者(4)图7

而后咱们从组件这个面板里径直把所须要挪用的cfc method径直drap & drop到右边的编制程序地区里去,就不妨了。第三局部 资源列表关系于macromedia mx系列常识的领会请考察:http://www.macromedia.comhttp://www.macromediachina.comhttp://www.flashempire.nethttp://www.blueidea.com对于macromedia 产物战略领会华文作品请考察:http://61.156.17.126/efe_news/newsread.php?id=123载入macromedia mx系列产物请考察:http://www.macromedia.com/software/trial_download/* macromedia coldfusion mx和jrun4不妨免费在官方网站获得开拓者本子,同贸易本子比拟,不过控制了开拓者本子的ip考察控制,效劳器高档报表东西,效劳器平衡负载功效等少许高档功效的运用。解释:jrun4、coldfusion mx、flash mx、dreamweaver mx、fireworks mx都是macromedia公司的备案产物。

macromediacoldfusionmx开发者(4)图8

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.