乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      可以使用多個(gè)jsp定制標(biāo)簽在JSP中達(dá)到接近servelt的處理效果

       duduwolf 2005-09-24
         jsp可以令菜鳥直接寫簡(jiǎn)單的網(wǎng)頁程序(網(wǎng)友言),而servlet卻有jsp所不及的集成程度和易維護(hù)性。兩者在JAVA/BS系統(tǒng)中無法簡(jiǎn)單取代,但同時(shí)并存卻令開發(fā)者陷入近兩年來最常見的陷阱中:必須在一個(gè)即使是相對(duì)簡(jiǎn)單的項(xiàng)目中維持多套程序模式的方案,顯然,這是高成本的。本文考慮并初步實(shí)驗(yàn)了使用標(biāo)簽組件連續(xù)完成類似servlet的處理效果,從而達(dá)到魚和熊掌兼得的目的,看來有一定的效果。

          在完全使用servlet的環(huán)境中,可以使用servlet的繼承獲得上級(jí)servlet的設(shè)定屬性;還可以使用servlet-chains達(dá)到分類處理的目的,整個(gè)WEB程序與實(shí)際應(yīng)用系統(tǒng)非常相似,高效而簡(jiǎn)潔;在servlet-jsp的環(huán)境中servlet起到集中處理請(qǐng)求的作用,而jsp負(fù)責(zé)顯示各種形式采摘的數(shù)據(jù)。后者最麻煩的就是在servlet/jsp中的數(shù)徑和變量處理方式不一致,平添大量的原始的工作量。strutsr actionmapping一定程度上解決這個(gè)問題,不過解決得不算太徹底。因此在大型的java BS應(yīng)用中采用servlet/jsp形式所帶來的方便,一定程度上將會(huì)被這種變量的不一致性所抵消,畢竟,維持兩種處理方案本身就是高成本的。

          因?yàn)檫@個(gè)原因,過去本人干脆完全采用servlet形式,而通過另外寫程序解釋由網(wǎng)頁人員編寫的嵌套式的html來達(dá)到與JSP類似的目的。這套方案在三四年前是有效的,但在今天由于SUN選擇了JSP作為發(fā)展的主體,包括JTL,TAG技術(shù),甚至于jsdk1。5中的cacheResutlSet都是為了這種(我認(rèn)為是落后的)JSP隨機(jī)編碼而開發(fā),因此,獨(dú)自堅(jiān)持走servlet道路是不明智的,(參看本人《選擇JSP作為BS發(fā)展方向很可能是致命的戰(zhàn)略失誤》一文);但是,同樣的疑問并不會(huì)因?yàn)镾UN選擇了JSP而消失:如果完全采用JSP,那么在數(shù)據(jù)提交處理上還是必須使用SERVLET以簡(jiǎn)化處理邏輯,但同時(shí)也必須承受上述的負(fù)面作用。

          作為SUN贊助支持的JAVA/BS主體項(xiàng)目方案之一的struts框架充分體現(xiàn)了這一矛盾帶來的困惑和折衷:struts- action/actionmapping本身就是為了達(dá)到克服上述的JSP不足,希望魚和熊掌兼得,通過ActionServlet令使用者減少 servelt程序的編寫量;不過,在不能完全解決問題的同時(shí),也令開發(fā)者為了這不是主體需求的需求,而必須多采用一個(gè)框架;一定程度上實(shí)際上是得不嘗失。

          如果上述邏輯成立,那么如同幾年前本人完全選擇servlet一樣,既然選擇了jsp作為主體方案,那么就應(yīng)該考慮完全拋棄servelt,以便以一套方案處理項(xiàng)目,避免維護(hù)兩套系統(tǒng)帶來的附加性成本。但是如同所有人在若干年前指出的一樣,JSP缺乏有效的代碼管理手段;也不便于形成象servlet那樣的基本框架體系,這樣它與簡(jiǎn)單的網(wǎng)頁程序如ASP/PHP沒有什么不一樣。引入javabean(組件,不是簡(jiǎn)單的數(shù)據(jù)對(duì)象化載體),可以一定程度上改善這種處境,但javabean缺乏統(tǒng)一的調(diào)用規(guī)范,卻令這樣的JSP比純粹的servelt開發(fā)顯得更為麻煩。

          我在使用tag時(shí),覺得可以吸取servelt-chains的概念,使用象SimpleTabSupport這樣最簡(jiǎn)單的標(biāo)簽方式,生成一個(gè)個(gè)的命令形式的標(biāo)簽,參數(shù)可以直接作為標(biāo)簽參數(shù)輸入,這樣在某個(gè)jsp中次第引入這種標(biāo)簽命令,就可以達(dá)到類似于servlet-chains的效果,而從易于配置使用上看,超過了servelt。為簡(jiǎn)便起見,我以struts的ActionServlet為藍(lán)本,寫成一個(gè)ActionTag的基本類,同樣使用 ActionErrors/ActionForm作為數(shù)據(jù)和消息的載體;然后所有的Command標(biāo)簽全部繼承這個(gè)ActionTag,這樣編寫一個(gè)命令標(biāo)簽的工作量不會(huì)比編寫一個(gè)struts-action bean的工作量更大。另一方面,由于標(biāo)簽直接可以接受參數(shù)設(shè)定,所以無需任何如Actionmappin這樣的預(yù)設(shè)置,實(shí)際上簡(jiǎn)化了維護(hù)。我認(rèn)為僅此而言,它至少比struts的ActionMapping要簡(jiǎn)潔有效。

          類似這樣的在一個(gè)平面上以標(biāo)簽形式執(zhí)行多個(gè)命令的處理方法并不鮮見,大名昭昭的Apache的httpd.conf就是使用這樣的方式完成設(shè)置的。

          通過這樣的方法,可以統(tǒng)一以JSP的方式來處理幾乎所有BS的網(wǎng)頁請(qǐng)求,接受在JSP頁面上的目錄和變量的同樣設(shè)定,估計(jì)可以大幅度降低開發(fā)和維護(hù)的成本,以及降低相應(yīng)的技術(shù)要求。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多