亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 我認為jsp有問題(上).txt

?? Java技術收集很多各種技術總結
?? TXT
字號:
作者:redact
email: redact@163.net
日期:2000-12-26 14:30:01
我認為JSP有問題(上)
(作者:小龍亭主Blueski編譯 2000年12月22日 14:22)

  (編者:這篇文章的原文首次在國外出現時,JSP還只是一種剛剛嶄露頭角的技術,并沒有像現在這樣如日中天。現在看來這篇文章的某些觀點可能會有一定的局限性,但我不得不承認這是一篇很大氣的作品,其中涉及很多JSP的內在原理。因此,我想還是有必要把這篇文章介紹給大家,以便各位從另一個側面更深入的了解JSP技術。) 



  如今每一個使用servlets的開發者都知道JSP,一種建構在servlet技術之上的由Sun公司發明并花費大量精力加以推行的web技術。JSP將servlet中的html代碼脫離了出來,從而可以加速web應用開發和頁面維護。實際上,由Sun發布的官方 "應用開發模型"文檔上說得更遠:"JSP技術應該被視為標準,而servlets在多數情況下可視為一種補充。" 

  本文將比較JSP和另一項基于servlets的技術:template engines(模板引擎)。 

直接使用Servlets的問題 
  當Servlets被發明時,整個世界都看到了它的優越性。基于Servlet的動態網頁可以被快速執行,可以在多個服務器之間輕易轉移, 并且可以和后臺數據庫完美地集成,因此Servlets被廣泛接受成為一種web服務器端的首選平臺。 

  但是,通常通過簡單方式即可實現的html代碼現在卻要讓程序員通過 out.println()調用每一行HTML行,這在實際的 Servlet應用中變成一個嚴重問題。HTML內容不得不通過代碼來實現, 這對于大的HTML頁來說不啻是一項繁重費時的工作。另外,負責網頁內容的人員不得不請開發人員來進行所有的更新。為此,人們尋求這一種更好的解決方式。 

JSP誕生 
  JSP 0.90誕生了。在這種技術中你可以將Java代碼嵌入到HTML文件,服務器將自動為頁面創建一個Servlet。JSP被認為是一種寫Servlet的簡易方式。所有HTML可以直接得到而不必通過out.println()調用,而負責頁面內容的人員可以直接修改HTML而不必冒破壞Java代碼的風險。 

  但是,讓頁面美術設計師和開發人員在同一文件上工作并不理想,讓Java嵌入HTML被證明是就象將HTML嵌入Java一樣令人尷尬。讀取一堆很亂的代碼仍然是一件困難的事情。 

  于是,人們在使用jsp方面變得成熟,更多地使用了JavaBeans。Beans包含了jsp所需的業務邏緝代碼。JSP中的大多數代碼都可以取出來放到bean中去,而只留下極少的標記用于調用bean。 

  最近,人們開始認為這種方式下的JSP頁面真的很象是視圖(view)。它們成為一個用于顯示客戶端請求結果的組件。于是人們會想,為什么不直接對view發送請求呢?目標view如果對該請求不合適又將如何?說到底,很多的請求有多種可能來取得結果view視圖。例如,同一請求可能產生成功的頁面、數據庫例外出錯報告,或者是缺少參數的出錯報告。同一請求可能產生一個英文頁面也可能是西班牙文頁面,這取決于客戶端的locale。為什么客戶端必須直接將請求發送給view?為什么客戶端不應該將請求發送給一些通用的服務器組件并讓服務器來決定JSP view的返回? 

  這使很多人接受了已被稱為"Model 2"的設計, 這是在JSP 0.92中定義的基于model-view-controller的模型。在這種設計中,請求被發送到一個servlet控制器,它執行了商業邏緝并產生一個相近的數據"model"來用于顯示。這一數據隨后通過內部送到一個JSP "view"來進行顯示,這樣看起來JSP頁就象是一個普通的嵌入的JavaBean。可以根據負責控制的servlet的內部邏輯來選擇適當的JSP頁面進行顯示。這樣,JSP文件成為了一個漂亮的template view。這就是另一種發展,并被另外一些開發者所推崇至今。 

進入Template Engines 
  如果使用template engine來代替通常目的的JSP, 接下去的設計將變得簡單,語法更簡單,出錯信息更易讀,工具也更用戶化。一些公司已經做了這樣的引擎,最著名的可能是WebMacro,他們的引擎是免費的。 

  開發者應該明了,選定一個template engine來取代JSP提供了以下一些技術優勢,而這些同時也正是jsp的不足之處: 

  問題 #1: Java代碼太模板化了 

  雖然被認為是不好的設計,JSP仍試圖將Java代碼加入web頁面。這有些象是Java曾經做過的事情,即對C++的簡化修改,template engines也通過將jsp中的較低層的源碼移去來使之簡化。而Template engines實行了更好的設計。 

  問題 #2: 要求寫Java代碼 

  在JSP頁中要求寫一些Java代碼。例如,假設某頁要決定當前web應用中根的上下文從而導向其主頁,在JSP中最好使用如下Java代碼: 

  <a href="<%= request.getContextPath() %>/index.html">Home page</a> 

  你可以試圖避免Java代碼,而使用 <jsp:getProperty> 標記,但這將給你如下難以閱讀的字符串: 

  <a href="<jsp:getProperty name="request" property="contextPath"/>/index.html">HomePage</a> 

  使用template engine則沒有Java代碼和難看的語法。這里是同樣要求下在WebMacro中的寫法: 

  <a href="$Request.ContextPath;/index.html">Home page</a> 

  在WebMacro中, ContextPath 作為 $Request變量的一個屬性,使用類似Perl的語法。其它template engines使用了其它的語法類型。 

  再看另一個例子,假設一個高級的"view"需要設定一個cookie來記錄用戶缺省的顏色配置 -- 這種任務看起來大概只能由view而不是servlet控制器來完成。在JSP中要有這樣的Java代碼: 

  <% Cookie c = new Cookie("colorscheme", "blue"); response.addCookie(c); %> 

  在WebMacro中則沒有Java代碼: 

  #set $Cookie.colorscheme = "blue" 

  作為最后一個例子,假如又要重新找回原來的cookie中的顏色配置。對于JSP,我們可以認為也有一個相應的工具類來提供幫助,因為用getCookies()直接做這樣低層的會變得可笑而且困難。在JSP中: 

  <% String colorscheme = ServletUtils.getCookie(request, "colorscheme"); %> 

  在WebMacro中沒有對工具類的需要,通常是: 

  $Cookie.colorscheme.Value 

  對于必須去寫jsp的圖形界面設計師,哪一種語法更容易學習呢? 

  JSP 1.1 引入了自定義標記(custom tags)允許任意的和HTML相似的標記在JSP頁面中在后臺執行Java代碼,這將具有一定的價值,但前提是要有一個廣泛知曉的,全功能的,可以免費得到的,標準化的標記庫。目前還沒有出現這樣的標記庫。 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线播放不卡一区| 欧美一二三四在线| 99精品黄色片免费大全| 激情五月婷婷综合网| 日韩高清不卡一区二区| 日本最新不卡在线| 国产一区二区女| 成+人+亚洲+综合天堂| aaa欧美大片| 欧美日韩高清影院| 日韩视频免费观看高清在线视频| 欧美一区在线视频| 国产女人aaa级久久久级| 国产精品欧美精品| 日本女人一区二区三区| 国产一区二区三区高清播放| 成人av在线影院| 欧美视频在线播放| 国产精品久久久久精k8| 中文字幕一区二区三| 奇米综合一区二区三区精品视频| 青娱乐精品视频| 色综合天天狠狠| 久久久五月婷婷| 肉色丝袜一区二区| 99re在线视频这里只有精品| 日韩欧美国产综合一区 | 中文字幕日本乱码精品影院| 亚洲3atv精品一区二区三区| 国产成人免费9x9x人网站视频| 日本韩国一区二区| 一区二区中文字幕在线| 国产乱人伦精品一区二区在线观看 | 国产成人av福利| 日韩精品一区二区三区在线| 成人免费看视频| 久久久蜜臀国产一区二区| 日韩av电影天堂| 欧美精品久久99| 天天色图综合网| 欧美性受xxxx| 亚洲午夜激情网页| 91.com在线观看| 蜜臀av在线播放一区二区三区| 欧美在线观看视频一区二区三区| 亚洲欧洲日韩在线| 91在线视频网址| 亚洲精品高清视频在线观看| 91丨国产丨九色丨pron| 亚洲综合一区二区| 56国语精品自产拍在线观看| 奇米亚洲午夜久久精品| 日韩欧美一级二级| 国产传媒日韩欧美成人| 亚洲精选免费视频| 中文字幕精品在线不卡| 99视频一区二区三区| 午夜国产不卡在线观看视频| 精品三级在线看| 91麻豆蜜桃一区二区三区| 日韩av午夜在线观看| 国产亚洲综合色| 777亚洲妇女| 粉嫩久久99精品久久久久久夜| 亚洲综合无码一区二区| 精品国产人成亚洲区| 色老汉一区二区三区| 久久精品国产精品亚洲综合| 亚洲欧美一区二区久久| 精品精品国产高清一毛片一天堂| 99精品视频一区| 欧美视频在线观看一区二区| 久久91精品国产91久久小草 | 99国产精品久久久久| 国产精品99久久久久久似苏梦涵| 亚洲影院免费观看| 日韩一区日韩二区| 国产日韩精品一区| 国产三级精品在线| 久久久综合网站| 久久免费看少妇高潮| 精品卡一卡二卡三卡四在线| 欧美日韩视频不卡| 欧美日韩视频在线第一区| 91网站在线播放| 在线一区二区三区四区五区| 91影院在线观看| 久久嫩草精品久久久精品一| 欧美精品欧美精品系列| 精品视频一区二区三区免费| 欧美三级日韩在线| 欧美日本一区二区三区四区| 在线播放中文字幕一区| 3751色影院一区二区三区| 欧美一卡2卡三卡4卡5免费| 91麻豆精品国产| 国产视频视频一区| 一区二区三区中文在线| 性欧美大战久久久久久久久| 蜜臀a∨国产成人精品| 黄网站免费久久| 91丨九色丨蝌蚪丨老版| 欧美精品日日鲁夜夜添| 欧美电视剧免费观看| 亚洲欧洲av在线| 国产精品一区免费视频| 9人人澡人人爽人人精品| 在线成人午夜影院| 亚洲三级在线免费观看| 久久99精品一区二区三区| 成人app网站| 久久综合久久鬼色| 亚洲成年人影院| 成人国产精品视频| 日韩精品一区二区三区视频在线观看 | 麻豆免费精品视频| 国产精品毛片高清在线完整版 | 人禽交欧美网站| 99国产精品99久久久久久| 国产女同互慰高潮91漫画| 日韩成人午夜精品| 日本精品视频一区二区三区| 国产视频一区不卡| 激情另类小说区图片区视频区| 在线亚洲人成电影网站色www| 精品国产制服丝袜高跟| 亚洲一卡二卡三卡四卡五卡| 成人一区二区三区| 国产精品理论在线观看| 国产精品一区二区三区乱码| 91免费在线看| 色综合欧美在线视频区| 欧美极品xxx| 成人免费视频网站在线观看| 久久九九99视频| 国产成人av一区二区三区在线| 国产校园另类小说区| 国产精品1区二区.| 亚洲已满18点击进入久久| 99精品久久久久久| 亚洲高清一区二区三区| 欧美日韩一本到| 毛片基地黄久久久久久天堂| 精品国产乱子伦一区| av网站免费线看精品| 亚洲一区二区av在线| 欧美高清你懂得| 国产精华液一区二区三区| 精品福利一区二区三区| 不卡电影一区二区三区| 亚洲一区二区三区美女| 2022国产精品视频| 欧美色综合影院| 国产91丝袜在线播放0| 亚洲综合视频网| 久久这里只有精品视频网| 91黄色免费观看| 国产一区二区三区电影在线观看| 精品亚洲成a人在线观看| 国产精品久久毛片a| 欧美精品亚洲一区二区在线播放| 精品制服美女久久| 亚洲成精国产精品女| 亚洲色图清纯唯美| 国产精品免费视频一区| 久久一区二区三区国产精品| 欧美日韩国产在线播放网站| 成人网在线播放| 国产传媒日韩欧美成人| 经典三级视频一区| 精品一区二区三区在线播放 | 国产精品原创巨作av| 日韩精品视频网站| 午夜电影久久久| 亚洲午夜免费电影| 亚洲福利视频一区| 夜夜操天天操亚洲| 亚洲电影一级黄| 丝袜脚交一区二区| 日韩高清一级片| 日韩成人午夜精品| 麻豆国产精品777777在线| 日本欧美一区二区三区乱码| 另类专区欧美蜜桃臀第一页| 免费在线观看日韩欧美| 国产又黄又大久久| 成人性生交大片免费看中文| 96av麻豆蜜桃一区二区| 欧美中文一区二区三区| 欧美一区二区三区电影| 久久综合久久99| 综合电影一区二区三区| 午夜一区二区三区在线观看| 蜜桃一区二区三区四区| 国产成人精品一区二区三区四区| 懂色av中文一区二区三区| 91成人免费在线视频| 欧美xxxxxxxxx| 午夜欧美2019年伦理| 国产一区二区调教|