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

首頁 > 學院 > 開發設計 > 正文

了解MVC架構對于用Struts構建的強大的Web應用程序

2019-11-17 06:23:35
字體:
來源:轉載
供稿:網友

  Struts是雅加達的一個項目,它提供了一個方法,可以在一個Web應用程序中一起使用javaServer
  Pages(jsp)和servlets。它的目的是要解決完全由JSP或完全由servlet實現的應用程序中的固有的問
  題。 例如,servelts可以生成Html頁面,但這么做很麻煩。另一方面,JSP可以很輕易地用于傳統的
  HTML頁面,但JSP頁面有其它的缺點。非凡是,用JSP很難將內容同內容的顯示分開。 很輕易將Java 代
  碼同HTML混在一起,結果做出的東西又慢又難以維護。
  
  然而,因為JSP頁面輕易使用,所以它們成為用Java構建動態的Web應用程序的首選方法。除了輕易編程
  外,JSP頁面也被改進了,所以現在它們克服了以前的某些局限性。JavaBeans和標記庫只是在基礎的
  JSP技術上的幾個改進。這種類型的方法——JSP頁面單獨負責處理輸入的請求和回復客戶端——被稱為
  Model 1架構。
  
  JavaServer Pages是servlets的非凡情況,所以兩者可以一起工作以彌補每個的不足,這似乎是合乎邏
  輯的。這種類型的方法——你的Web架構包含截然不同的但又互聯的處理數據模式、顯示代碼和程序控
  制邏輯的JSP和servlet組件——被稱為Model 2架構,或Model-View-Controller(MVC)架構。
  
  為了使用Struts架構以及用JSP和servlets有效地編程,對MVC架構的了解是很必要的。Model 1和MVC架
  構的主要不同就是請求是在哪里處理的。在Model 1架構中,請求通過JSP接收,主要通過JSP處理。如
  果JSP頁面需要來自任何其它應用程序組件的服務,如一個數據庫,那么你就從頁面做適當的調用,把
  數據返回到頁面,安排數據的格式并顯示出來。你可以把一些代碼放到一個或多個JavaBean中,但是這
  么做本身沒有將邏輯同顯示完全分離。
  
  MVC方法采用了JSP和servlet方法的最佳特性,使這兩種技術可以協同工作。明確的是,servlet是處理
  層(控制器)。Servlet接收請求,很像Model 1架構中JSP頁面所做的那樣,并確定如何滿足那些請
  求。這就意味著,servlet控制輸入的請求和輸出的回應。
  
  商業邏輯體現了MVC架構中的模式。商業邏輯代碼為頁面做處理。假如進入servlet的請求是一個數據庫
  查詢,servlet就將這個請求傳送到一個SQL調用或類似的數據庫代碼。假如請求是一個包括輸入信用卡
  號的購買請求,那么事物處理代碼就接管了。在某種意義上,架構的模式部分是讓應用程序處于領先地
  位的全部原因。
  
  JSP頁面是顯示層(視圖),是用戶與應用程序交互的地方。它提供輸入并顯示結果。頁面不應該包括
  任何腳本。它只是將數據傳送到servlet,并接收和顯示返回的數據。
  
  該架構的優勢應該是很明顯的。首先,它將計算和顯示清楚地分開了。結果很理想,在JSP頁面上沒有
  出現處理過程,在servlet或商業邏輯中沒有數據格式。這種分離的另一個好處是Java程序員可以專注
  于servlet代碼,HTML編寫者可以專注于JSP。 第二點,控制器servlet做頁面上的所有的決定。 在你
  的頁面和邏輯中不會出現任何決策。這就提高了一個應用程序的性能和可擴展性,因為請求可以被導向
  架構的不同的組件,甚至是不同的服務器。
  
  
  運用MVC架構
  
  MVC架構沒有必要成為用于所有Java應用程序的最佳方法。 如你想象的那樣,它在預備和編碼時往往很
  復雜——這對簡單的應用程序來說是沒必要的。當頁面導航相對來說比較簡單和固定,而且應用程序中
  的頁面結構可以由一個簡單的目錄結構治理時, Model 1架構仍然是最好的方法。這些應用程序往往將
  頁面流動信息嵌入到頁面間的鏈接中。(JSP中出現forward()就告訴你,在該頁中有嵌入的邏輯,讓你
  對顯示下一頁作出決定。)對于對流量或可擴展性需求有限的靜態的應用程序來說,標準的JSP模式仍
  然是一個可行的選擇方案。
  
  在一些情況下,你可能想把一個JSP應用程序移植到MVC架構中。例如,你可能開始時用的是Model 1,
  簡單的JSP架構,隨著你的需求的增加,你會發現維護起來太復雜或太難了。假如你花很長的時間對應
  用程序做相對來說較簡單的修改,或者假如你經常在你的代碼中發現bug,那么你的JSP導向的應用程序
  也許就不再是合適的方法了。
  
  隨著應用程序的發展和變化,頁面的流動和商業邏輯也增加了。應用程序變得難以維護,因為頁面流動
  邏輯跨多個頁面分布,而且商業邏輯可能開始存在于未計劃的地方。從Model 1轉到MVC的最佳時機就是
  當這些類型的維護問題出現的時候。
  
  你也可以預先計劃將你的應用程序從一個架構移植到另一個架構。當你的應用程序中的JSP頁面包含腳
  本元素,定制標記或javascript來執行一個forward()操作時,你可能想調整你最初的設計,變成一種
  用MVC架構的設計。
  
  Refactoring用在這兒是個不錯的術語。它指的是以一種高度嚴謹的方式重建代碼結構的一種技術。當
  你的代碼變得難以理解、修改和調試時,你通常就開始考慮調整了。你可以用幾種方式來調整代碼:你
  可以簡單地重新命名變量和方法,或者將部分代碼移植到不同類型的執行模式中。更多的關于調整及其
  技術方面的信息,請訪問Martin Fowler的網站www.refactoring.com 或者閱讀他寫的書
  Refactoring: ImPRoving the Design of Existing Code。
  
  在許多情況下,一開始就選擇MVC架構是很有意義的,例如你的應用程序是為廣泛的企業應用而設計
  的,或者在幾年內,你的應用程序可能擴展到一個相當高的流量。 設計一個MVC架構需要有深謀遠慮。
  大多數程序員發現寫邏輯腳本或JavaBeans,以及用HTML顯示很輕易。當你設計一個MVC架構時,你必須
  首先進行一個完整的設計。這就意味著,分析需要處理的請求的類型,確定哪些組件(JavaBean、數據
  庫或其它servlets)將處理這些請求,以及對那些請求的回應是如何顯示給用戶的。 該設計的要害就
  是請求和數據的流動性。為MVC架構設計應用程序組件只是對你現在用JSP和servlets所做工作的擴展。
  面臨的挑戰就是構建一個servlet,它接收請求并把那些請求分到應用程序的不同的組件。將一個數據
  庫請求傳送到一個數據庫,或將一個處理請求傳送到一個JavaBean是很輕易的,但是假如一個請求包含
  這兩種元素,會怎樣呢?或者假如請求的性質在一些處理出現前不能確定,又怎樣呢?
  
  
  Struts 構架
  
  該挑戰使我們又回到Struts構架。Struts提供了一個實現MVC架構的高度自動化的方式。它的結構實現
  了MVC,并包括一個控制器servlet、一組JSP頁面和應用程序的商業邏輯??刂破鲗⒂脩粽埱蟠虬?,并
  把它們導向架構中的其他對象。
  
  Struts構架是圍繞一個ActionMapping 結構的??刂破饔?ActionMapping 把HTTP消息形式的用戶請求
  轉換成應用程序的動作。ActionMapping指定請求的路徑、計劃處理請求的對象以及任何服務該請求需
  要的其它信息。ActionMapping創建了一個 Action 對象來處理請求。一旦Action對象完成了一個任
  務,它就通過在一個JSP頁面上寫結果來直接回應一個用戶請求,或者它可以讓一個應用程序流動到其
  它地方做回應。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91久久在线视频| 精品久久久久久久久久久久| 97av视频在线| 2018日韩中文字幕| 日韩av综合中文字幕| 在线播放国产一区二区三区| 色婷婷综合成人av| 欧美日韩视频在线| 国产精品成人久久久久| 国产精品极品美女在线观看免费| 45www国产精品网站| 日韩成人中文字幕在线观看| 亚洲欧美精品伊人久久| 欧美日韩爱爱视频| 6080yy精品一区二区三区| 不卡在线观看电视剧完整版| 国产精品视频久久| 国产精品一区二区三区毛片淫片| 成人精品久久一区二区三区| 国产美女久久精品| 亚洲激情免费观看| 精品久久久中文| 欧美精品在线免费| 国自产精品手机在线观看视频| 欧美一级电影免费在线观看| 日韩中文字幕免费看| 亚洲一区二区三区在线免费观看| 欧美国产亚洲视频| 亚洲伊人一本大道中文字幕| 亚洲最大av网| 欧美日本国产在线| 日本久久久a级免费| 精品色蜜蜜精品视频在线观看| 日本一欧美一欧美一亚洲视频| 久久久亚洲精品视频| 亚洲第一网中文字幕| 日韩电影中文字幕av| 亚洲色图偷窥自拍| 欧美性猛交xxxx富婆弯腰| 国产精品久久久久久久久久久新郎| 亚洲欧美在线免费观看| 国产精品私拍pans大尺度在线| 欧美孕妇毛茸茸xxxx| 成人天堂噜噜噜| 国产成人精彩在线视频九色| 亚洲激情视频网| 亚洲精品国产电影| 日韩美女免费视频| 国产精品高潮呻吟久久av无限| 欧美人成在线视频| 亚洲女同性videos| 亚洲在线观看视频| 久久亚洲成人精品| 亚洲国产精品电影| 欧美在线日韩在线| 精品国产一区二区三区久久久狼| 正在播放亚洲1区| 国产视频在线观看一区二区| 海角国产乱辈乱精品视频| 久久久久久一区二区三区| 亚洲欧洲激情在线| 欧美激情久久久| 亚洲国产成人av在线| 青青草原一区二区| 欧美激情亚洲综合一区| 91精品国产91久久久久久不卡| 亚洲性av在线| 欧美午夜宅男影院在线观看| 欧美精品在线免费| 亚洲视频日韩精品| 久久久久久久久中文字幕| 成人中心免费视频| 宅男66日本亚洲欧美视频| 亚洲国产高清高潮精品美女| 欧美日韩中文在线| 欧美午夜电影在线| 亚洲欧美日韩在线高清直播| 国产欧美日韩视频| 久久久久久久久久亚洲| 国产精品成人在线| 九九热这里只有精品免费看| 91精品国产91久久久久| 国产精品v日韩精品| 亚洲男人天堂2019| 国产成人在线一区| 韩国三级日本三级少妇99| 午夜剧场成人观在线视频免费观看| 久久人人爽人人爽人人片av高清| 日韩欧美视频一区二区三区| 中文欧美在线视频| 欧美日韩国产第一页| 欧美一乱一性一交一视频| 欧美第一黄色网| 在线电影av不卡网址| 国产欧美欧洲在线观看| 高清欧美电影在线| 欧美日本亚洲视频| 久久精品国产亚洲精品2020| 久久精品色欧美aⅴ一区二区| 国产精品国产三级国产专播精品人| 日本老师69xxx| 亚洲精品国产成人| 日韩在线免费高清视频| 97国产真实伦对白精彩视频8| 成人免费在线视频网址| 欧美日韩亚洲网| 在线精品高清中文字幕| 日韩精品福利网站| 国产一区二区三区在线观看视频| 欧美成人一区二区三区电影| 亚洲精品按摩视频| 91欧美日韩一区| 九九热这里只有精品免费看| 欧美日韩爱爱视频| 精品久久久一区| 欧美成人在线网站| 97在线视频免费观看| 日本高清+成人网在线观看| 欧美日韩成人在线观看| 国产日韩欧美中文在线播放| 国产亚洲欧洲在线| 97久久精品人人澡人人爽缅北| 亚洲男人第一av网站| 在线视频一区二区| 欧美激情精品久久久久久变态| 成人黄色影片在线| 亚洲成年人影院在线| 欧美成人性色生活仑片| 欧美第一页在线| 欧美亚洲国产视频| 日韩欧美国产高清91| 综合激情国产一区| 亚洲成人网在线观看| 亚洲最大在线视频| 亚洲精品成人久久| 日韩中文字幕在线精品| 亚洲三级黄色在线观看| 高清欧美一区二区三区| 久久久久久久久91| 亚洲精品中文字幕女同| 亚洲bt欧美bt日本bt| 日韩av免费在线| 亚洲视频在线播放| 国产精品久久久久久超碰| 国产精品久久久久77777| 成人h片在线播放免费网站| 欧美精品在线极品| 91亚洲精品久久久久久久久久久久| 精品美女国产在线| 中文字幕日韩在线视频| 欧美福利视频在线| 精品久久久久久久久国产字幕| 亚洲电影免费观看高清完整版| 精品一区二区三区四区在线| 欧美一级bbbbb性bbbb喷潮片| 一区二区福利视频| 国产99久久精品一区二区永久免费| 亚洲网站在线播放| 亚洲午夜av久久乱码| 亚洲精品久久久久中文字幕欢迎你| 人人爽久久涩噜噜噜网站| 精品二区三区线观看| 欧美日韩成人免费| 搡老女人一区二区三区视频tv|