<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 176, comments - 240, trackbacks - 0, articles - 7

    [導(dǎo)入]jsp tag的七宗罪

    Posted on 2005-11-15 12:21 canonical 閱讀(414) 評(píng)論(0)  編輯  收藏 所屬分類: 軟件開發(fā)
    一個(gè)技術(shù)的成功,在于最終占據(jù)了某個(gè)概念。當(dāng)我們應(yīng)用到此概念的時(shí)候,首先想到的就是這個(gè)技術(shù)實(shí)現(xiàn),久而久之,形成一個(gè)自我證明的過程。而有些技術(shù)卻是在 其位無能謀其政,實(shí)在是讓人不得不為它扼腕嘆息呀。jsp tag正是這樣一種技術(shù)。有些人認(rèn)為jsp tag只是jsp的一種擴(kuò)展,只是一種syntax suger, 這正反映了此技術(shù)所面臨的一種困境。這里指出一些jsp tag的設(shè)計(jì)缺陷,并無貶低這種技術(shù)的意圖,只是希望拋磚引玉,引發(fā)大家對(duì)這種技術(shù)改進(jìn)的探討。
    引用:
    jsp tag是服務(wù)器端的擴(kuò)展標(biāo)簽機(jī)制,它是一系列java服務(wù)器端技術(shù)的基礎(chǔ)。但其設(shè)計(jì)之初的幾個(gè)重大缺陷已經(jīng)使得這種技術(shù)不堪重負(fù)。  

    對(duì)比dotNet平臺(tái)我們可以知道,需要一種后臺(tái)標(biāo)簽機(jī)制,jsp tag是唯一的標(biāo)準(zhǔn)(JSF等機(jī)制都依賴于此),可它的設(shè)計(jì)給所有希望基于它開發(fā)的開發(fā)人員造成了巨大的困擾。實(shí)際上我對(duì)這個(gè)技術(shù)感到很失望,當(dāng)然我們提 出了相應(yīng)的替代方案。在我們的開發(fā)框架中使用的是重新設(shè)計(jì)的一套與網(wǎng)絡(luò)無關(guān)的xml動(dòng)態(tài)標(biāo)簽機(jī)制。我的觀點(diǎn)是基于jsp tag技術(shù),無法開發(fā)出與dotNet的便捷程度相當(dāng)?shù)姆?wù)端技術(shù),所以這是它作為標(biāo)準(zhǔn)的罪過。jsp tag不應(yīng)該是jsp的補(bǔ)充,它搭上了xml這條大船,應(yīng)該去走自己的路,而不應(yīng)該成為應(yīng)用上的雞肋。
    引用:
    1. jsp tag與jsp 模型緊密綁定,使得業(yè)務(wù)邏輯很難抽象到tag中。而且脫離了jsp環(huán)境,在jsp tag上的技術(shù)投資將一無是處。  

    這里說業(yè)務(wù)邏輯可能是有些不妥,容易引起誤解。因?yàn)槲业墓ぷ髯鲈谥虚g件層,所以我的原意是基于jsp tag開發(fā)一系列的擴(kuò)展技術(shù),比如緩存等。我們的xml標(biāo)簽技術(shù)是與jsp模型無關(guān)的,在前臺(tái)用于界面渲染,在后臺(tái)用于工作流描述。而且很方便的就可以與 其它xml技術(shù)結(jié)合,比如集成ant。

    引用:
    2. jsp tag的編碼邏輯非常繁瑣, 特別是寫loop和容器類標(biāo)簽的時(shí)候。在2.0之前不支持從tag本身產(chǎn)生tag更是應(yīng)用上的主要障礙。  

    這絕對(duì)是個(gè)重大問題,試問多少人自己去開發(fā)jsp tag呢,多半是用用別人的成品。編制困難其實(shí)就是否定了界面元素的重用。很多人推崇Tapestry, 其實(shí)如果jsp tag技術(shù)方便一點(diǎn),何必建立一個(gè)完全不同的模型呢。

    引用:
    3. 使用將xml標(biāo)簽的屬性直接映射到對(duì)象屬性的方法造成tag對(duì)象是有狀態(tài)的,不得不通過丑陋的pool機(jī)制來解決性能問題。
    而且性能問題直接限制了大量小標(biāo)簽的使用。  

    這是一個(gè)現(xiàn)實(shí)的困難,一個(gè)系統(tǒng)設(shè)計(jì)師必須考慮。

    引用:
    4. jsp tag是一種完全動(dòng)態(tài)化的設(shè)計(jì),大量可以在編譯期進(jìn)行的優(yōu)化都無法進(jìn)行,基本上所有的運(yùn)算都是在運(yùn)行期發(fā)生,限制了性能的提高。  

    我們的xml標(biāo)簽技術(shù)是先編譯再運(yùn)行的,加上無狀態(tài)設(shè)計(jì),在性能上可以得到控制。我的朋友hotman_x是個(gè)C++和js高手,在他的強(qiáng)烈要求下,我們的xml標(biāo)簽還增加了一個(gè)多次編譯的機(jī)制。

    引用:

    5. 雖然最近的版本已經(jīng)支持xml格式,但對(duì)于xslt等的集成很不到位,例如現(xiàn)在無法使用xslt對(duì)jsp文件進(jìn)行界面布局。

    最簡單的
    <web:template src="test.tpl" xslt="layout.xslt" />
    <web:mytag xdecorator="face.xslt">
    ...
    </web:mytag>

    引用:
    6. jsp tag要求使用自定義標(biāo)簽名,而無法對(duì)已經(jīng)存在的html標(biāo)簽進(jìn)行enhance, 造成無法方便的在可視化編輯器中進(jìn)行編輯。  

    Tapestry就認(rèn)為它比較好。我們的xml標(biāo)簽機(jī)制也支持屬性擴(kuò)展。

    引用:
    7. EL表達(dá)式竟然不支持調(diào)用對(duì)象函數(shù)

    很多人因此覺得OGNL比較好。我們的機(jī)制中是對(duì)EL做了一定的增強(qiáng)。我不喜歡OGNL, 過于復(fù)雜了。

    主站蜘蛛池模板: 亚洲视频在线观看免费视频| 嫩草在线视频www免费看| 91黑丝国产线观看免费 | 香蕉视频在线观看免费| 国产日本一线在线观看免费| 亚洲电影免费观看| 91短视频免费在线观看| 亚洲国产夜色在线观看| 在线观看特色大片免费视频| 最新国产精品亚洲| 国产高清免费在线| 特级毛片aaaa级毛片免费| 亚洲精品在线视频| 水蜜桃视频在线观看免费播放高清| 日本亚洲视频在线| 特级无码毛片免费视频尤物| 亚洲精品第五页中文字幕| 国产成人免费网站| 免费精品视频在线| 久久亚洲精品中文字幕无码| 亚欧色视频在线观看免费| 亚洲日韩av无码中文| 亚洲精品无码成人片在线观看 | 精品久久久久久亚洲| 久久久久久久99精品免费| 亚洲春色另类小说| 国产成人免费手机在线观看视频 | 日韩免费视频在线观看| 一区二区三区精品高清视频免费在线播放| 久久久久亚洲精品男人的天堂| 日韩精品免费视频| 亚洲精品456人成在线| 亚洲精品偷拍视频免费观看| 91老湿机福利免费体验| 狠狠入ady亚洲精品| 亚洲乱亚洲乱淫久久| 国产又大又长又粗又硬的免费视频| 亚洲精品视频免费观看| 亚洲乱码日产精品BD在线观看| 又黄又爽一线毛片免费观看| 无码少妇精品一区二区免费动态|