亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

標簽庫完成復雜的后臺處理功能的JSP示例

2024-09-05 00:20:24
字體:
來源:轉載
供稿:網友
  jstl標簽是sun帶頭與apache社區合作的產品,可惜從一出現就已經是一個過時的技術。sun的軟件架構師似乎缺乏從顧客角度考慮技術取向的能力,與微軟相比差之千里。就標簽技術而言,它的目的是令菜鳥中的菜鳥變得可以寫jsp,還是令一般程序員寫jsp顯得更方便,更好管理?顯然,sun的那位笨蛋架構師沒有想明白這個道理(越是看得多它的文檔介始,越是覺得那個家伙是個大笨蛋),把sun數千名天才工程師的才智白白浪費了。

  所有人都已經知道,jsp出現的目的就是為了讓程序員更方便地寫簡單的servlet,復雜的多功能的servlet是不容易用jsp實現的。而jsp希望讓菜鳥寫java動態頁面的目的并沒有達到,這條,還不如asp/php。在jsp中散布底層業務邏輯既不便于對象組織,也不但于代碼管理,非常低效。這是發展出javabean和標簽技術的原因;而jstl呢,它的基本客戶邏輯竟然是為了幫助使用者更方便地把底層代碼散布在jsp上???包括數據庫連接?!所以這東西是一個新的技術實現落后目標的產品,面對市場需求整整慢了一拍。

唯一有點價值的是它的循環邏輯,這條還是很有用的。只不過能夠實現的不止它一個,struts.logic標簽就是很好用的一種,而且不用指向http:/sun.xxxx/core什么的,事實上jstl能夠提供的struts:logic也能夠提供。實際上struts幾個標簽庫中也就logi,有點價值,bean也可以,其他的html是純粹和formbean為核心的mvc設想框架提供的。即使這樣,就實用性而言,strutslib仍比sun實用得多。

  struts標簽庫不能很好地面向數據對象,這是它的不足,hanva標簽就是為了補充這個不足。結合struts的logic庫,使用hanva標簽可以達到在jsp中聲明和接收變量,可以實現多種邏輯,可以直接從底層獲得持久性非持外性的數據對象,處理并輸出——一個程序大致也就只有這些東西做的。特殊的東西再特殊處理,直接完全使用標簽調用下層服務daemon程序完成絕大部分功能,已經可以做到了。

  下面的論壇示例刪除程序是這樣的一個功能,可以處理任何的實現了hanvadao接口規范的表數據的刪除,包括對其相關數據記錄的同步處理。它接收一個對象類型(ent),及id,判斷這個對象(行記錄)是否存在,然后判斷它的sourceid和id是否一致(是主貼還是跟貼),如果是主貼,就把它的從貼一起刪除,否則就只刪除當前貼,然后返回原來調用的一頁,如果出錯,就轉向到errors.jsp頁,顯示出錯信息。

<entity:present ent="${param.ent}" oid="${param.oid}" id="thent" nexto="${header.referer}">
   <%--如果記錄存在就繼承內嵌邏輯,把該記錄定為ident名--%>
   <%--判斷sourcid與id是否一致--%>
  <logic:equal name="thent" value="${thent.sourceid}" property="id">
<%--取所有主從貼,集合定名為theobjs--%>
   <entity:entities ent="${param.ent}" id="theobjs" qstr="sourceid=${sourceid}">
<%--迭代集合內容,單個取名為theobj--%>
    <logic:iterate id="theobj" name="theobjs">
<%--刪除該對象--%>
     <cmd:delete ent="${param.ent}" target="${theobj}"/>
    </logic:iterate>
   </entity:entities>
  </logic:equal>
  <logic:notequal name="thent" value="${thent.sourceid}" property="id">
<%--單個從貼,清除該對象--%>
   <cmd:delete ent="${param.ent}" target="${thent}"/>
  </logic:notequal>
 </entity:present>

  標簽結束,根據nexto轉向到調用者,這樣段小代碼實際上就扮演了一個mvc中的c角色。如果需要輸出斷點,可以調用hanva:log 把實時內容輸出到log日志中。一個比較復雜的功能就此完成了。全程實際上只是進行了一次或兩次數據庫的訪問,如果是多個從貼,需要獲得它的串,這是可能的第二次。注意<entity:entities>標簽,它輸入一個條件,也可以輸入fields選項,得到一個arraylist串(沒有同步要求就不用vector),如果不是為了翻頁,它可以代替hanva:list,使用上也更方便,沒有需要先設定一個dao.list對象。

  我認為這才是標簽技術的真正用法:幫助程序員在界面清晰明確地調用后臺的處理程序,方便面向對象的業務邏輯的建立,方便隱藏非表達層的邏輯;而不是變成把頁面搞得更復雜,堆上更多難懂代碼的又一套新方法。

  相對而言,tags文件標簽技術顯得更現實一點。如同jsp是方便菜鳥(仍是程序員)寫簡單的servlet一樣,tags標簽文件是方便看到class就發抖的菜鳥象寫jspjavalet一樣寫標簽;顯然,是最簡單的simpletagsupport的變種,只有它才有一個體內容。也同樣,充分利用class類結構的編碼技術在這里沒有辦法實現。

  jsp開發社團看來熱衷于在局部別具一格地提供一些局部方便性措施,卻常常忽略了客戶更大的一個要求:在項目開發中盡可能采用單一的標準的范式完成所有程序。多使用一種小技術模式在局部方便了,全局來說卻是多管理一種一種技術,或者說程序員要多學一種只在局部有效的技術。這個邏輯錯誤從j2ee開始就伴隨著sunjava的技術發展,看來是它的不治之癥。在筆者看來,與其多搞小動作,不如在核心一鉆到底,而小范圍內的方便措施,還是有有能力的客戶去實現為佳。拙劣地模仿微軟去拍落后(也是非主流的客戶)的馬屁,將是sun公司技術上最終失敗的原因。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美老女人bb| 亚洲free性xxxx护士hd| 国产精品欧美激情在线播放| 亚洲美女www午夜| 2021国产精品视频| 亚洲色图国产精品| 久久夜精品va视频免费观看| 国产精品美女久久久久久免费| 国产精品极品美女粉嫩高清在线| 亚洲美女又黄又爽在线观看| 亚洲综合精品伊人久久| 国产精品扒开腿做爽爽爽的视频| 欧美激情啊啊啊| 日韩成人性视频| 亚洲欧美制服丝袜| 久久久在线视频| 国产精品老女人精品视频| 亚洲国产精品va在线观看黑人| 欧美日韩一区二区免费在线观看| 97成人超碰免| 亚洲色图国产精品| 亚洲第一级黄色片| 综合网日日天干夜夜久久| 国产精品免费久久久| 亚洲自拍欧美另类| 青草青草久热精品视频在线观看| 亚洲aaa激情| 国产丝袜高跟一区| 国产欧美日韩中文字幕| 日韩成人中文字幕在线观看| 成人性生交大片免费看视频直播| 久久久精品国产| 欧美人与性动交a欧美精品| 久久亚洲一区二区三区四区五区高| 国产精品久久久久久av福利| 欧美理论在线观看| 日韩视频亚洲视频| 美女黄色丝袜一区| 久久久久久久爱| 清纯唯美亚洲综合| 久久久999精品| 国产精品久久久久久久久久久不卡| 欧洲日韩成人av| 日本19禁啪啪免费观看www| 久久影视电视剧免费网站| 国产精品一区二区三区久久| 亚洲欧美在线播放| 成人免费网站在线观看| 97免费中文视频在线观看| 日韩小视频在线| 亚洲一区二区三区四区视频| 成人精品一区二区三区电影免费| 久久精品影视伊人网| 日韩视频精品在线| 亚洲最大福利视频| 国产亚洲欧洲高清一区| 亚洲最大成人免费视频| 久久精品国亚洲| 精品国内产的精品视频在线观看| 日韩国产一区三区| 欧美风情在线观看| 国产免费成人av| 亚洲乱亚洲乱妇无码| 在线日韩第一页| 国产精品久在线观看| 亚洲第一中文字幕在线观看| 欧美刺激性大交免费视频| 欧美国产精品日韩| 亚洲欧美在线第一页| 91高清免费在线观看| 日韩一区二区福利| 91久久国产精品| 国产日韩欧美在线看| 亚洲欧洲在线观看| 亚洲二区在线播放视频| 久久久成人精品视频| 久久久精品国产网站| 日韩中文字幕在线看| 性欧美亚洲xxxx乳在线观看| 国产成人精品国内自产拍免费看| 美女啪啪无遮挡免费久久网站| 亚洲国产精品yw在线观看| 欧美视频免费在线观看| 成人在线激情视频| 亚洲一区精品电影| 综合久久五月天| 欧美成人免费网| 久久免费国产精品1| 尤物精品国产第一福利三区| 国产精品久久久久77777| 亚洲欧美日韩精品久久| 国产欧美日韩精品在线观看| 国产丝袜精品视频| 欧美亚洲另类在线| 日韩成人中文字幕| 欧美成人免费视频| 成人有码视频在线播放| 亚洲第一网站免费视频| 久久综合伊人77777蜜臀| 欧美伦理91i| 亚洲国语精品自产拍在线观看| 亚洲国产日韩欧美在线动漫| 欧美日韩国产精品| 亚洲最大av网| 亚洲精品aⅴ中文字幕乱码| 色哟哟亚洲精品一区二区| 欧美午夜宅男影院在线观看| 日韩美女视频免费看| 欧洲精品久久久| 97精品一区二区三区| 国产欧美日韩精品丝袜高跟鞋| 国产精品久久在线观看| 欧美中文字幕在线观看| 国产成人一区二区三区电影| 美女av一区二区| 亚洲色图综合久久| 亚洲第一精品久久忘忧草社区| 国产精品午夜国产小视频| 久久久久久免费精品| 久久综合伊人77777蜜臀| 久久精品视频网站| 欧美丰满老妇厨房牲生活| 亚洲夜晚福利在线观看| 国产在线视频欧美| 欧美怡红院视频一区二区三区| 欧美福利视频网站| 精品在线观看国产| 亚洲精品v天堂中文字幕| 国产亚洲精品久久久久动| 中文字幕亚洲欧美日韩2019| 久久国产天堂福利天堂| 91久久久亚洲精品| 庆余年2免费日韩剧观看大牛| 亚洲免费人成在线视频观看| 国产色综合天天综合网| 国产精品爽爽爽爽爽爽在线观看| 色悠悠久久久久| 91精品国产综合久久久久久久久| 欧美一级大片在线观看| 久久综合色88| 久久av在线看| 91免费的视频在线播放| 欧美激情在线狂野欧美精品| 国产高清视频一区三区| 亚洲自拍中文字幕| 成人深夜直播免费观看| 欧美另类极品videosbest最新版本| 国产日本欧美一区| 午夜精品美女自拍福到在线| 国产成人一区二区三区电影| 亚洲人成网站色ww在线| 久久人人爽人人| 国产亚洲精品久久| 中国日韩欧美久久久久久久久| 亚洲视频电影图片偷拍一区| 欧日韩不卡在线视频| 久久久www成人免费精品| 欧美夫妻性视频| 国产999精品久久久影片官网| 日韩中文字幕网址| 精品无码久久久久久国产| 91av网站在线播放| 久久久天堂国产精品女人| 久久久精品免费视频|