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

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

通過Struts應用MVC設計模型

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

  模型--視圖--控制器(Model-View-Controller,MVC)體系突出了Servlets和jsp的優點,同時也令它們的缺點最小化。在實現中,用戶請求被發送到一個控制器servlet,該servlet決定請求的性質,并且根據請求的類型傳送給適合的處理器。每個處理器都和一個非凡的模型相關,里面封裝有商業邏輯來執行一些非凡的函數集合。處理完畢后,結果會發送回處理器,處理器選擇適合的視圖顯示它。

  Struts最早于2002年5月作為Jakarta項目的組成部分問世,Jakata項目由Apache Foundation.運做。項目的創立者希望該項目的研究改進和提高java Server Pages (JSPs)、servlet、標簽庫以及面向對象的技術水準。Struts為使用MVC體系來編寫應用提供了一個架構。Struts使用“ActionMapping”,它答應servlet將用戶的請求轉變為應用行為。ActionMapping通常指定一個請求的路徑、在請求上進行動作的對象類型,以及指定其它需要的屬性。

  Action對象作為ActionMapping的一個部分使用,負責處理請求,并且發送響應回適合的視圖(通常是一個Web瀏覽器),或者傳送請求至適合的模型。

  在模型和視圖間的橋是一個form bean,它可以通過繼續org.apache.struts.action.ActionForm得到。form bean用來保存處理前的用戶數據,或者顯示返回給用戶的模型數據。Struts包含有自定義的標簽,它可以由創建的form bean中自動組合字段。

  在實踐中用戶請求JSP頁面,控制器servlet接收請求并決定由哪個應用處理它。Action對象傳送該請求到包含有接收商業邏輯的JavaBean中。商業邏輯bean將連接數據庫并進行查詢,接收結果,然后返回結果給Action對象。Action對象將結果作為請求的一部分存放到一個form bean中。一旦收集完請求的全部數據,就可以格式化結果并且顯示。最后是JavaServer Page以Html表格的形式將結果顯示出來。

  模型,控制器和視圖

  Struts中的控制器的基本組件是ActionServlet類中定義的servlet,它是由ActionMappings定義的。ActionMapping類表示的是Action對象的名字和位置。當一個請求進入控制器時,它將請求的路徑映射到Action的位置,并且將請求傳送給Action。Struts的ActionMapping類還可能包含有其它的信息,這些信息可能只是與你的應用相關,例如本地變量,環境變量或者其它URIs。

  Struts的要害是控制器四周的活動。Struts控制器servlet映射事件到類(一個事件通常是一個HTTP POST, GET,或者類似的請求)。ActionServlet是MVC設計模型的司令部,也是StrUCts架構的核心。ActionServlet創建和使用Action,一個ActionForm和ActionForward。struts-config.xml是用來設置Action的。在創建Web應用期間,采用擴展Action和ActionForm來解決如何響應用戶請求的問題。struts-config.xml則是告訴ActionServlet如何使用擴展類。也可擴展ActionServlet以令Structs應用帶有一些自定義的特性。

  這個方法有幾個優點。首先,應用的整個邏輯流都是在一個分等級的文本文件中。這樣就可以比較輕易地查看、理解應用,非凡是大的應用。第二,編寫網頁的人在修改網頁時就無需遍歷Java代碼來理解應用的流程,而Java開發者在改變流程的時候也無需重新編譯代碼。

  ActionForm為Web應用維護session狀態。ActionForm是一個抽象類,它可以被每個輸入表格模型擴展。它代表數據的一般概念,可以被HTML表格設置或者更新。例如,你的應用也許擁有一個被HTML表格設置的UserActionForm。Struts的架構將檢查UserActionForm是否存在,假如不存在,就會創建一個該類的實例。Structs將會使用HttpServletRequest的相應字段來設置UserActionForm的狀態。在傳送UserActionForm給商業封裝層的UserAction前,Struct架構先更新UserActionForm的狀態。

  Structs模型包含有系統的狀態和它可以接受的操作。可以使用各種各樣的結構來表示模型(例如其它servlets或者JSP),不過在大多數的時候你都會使用JavaBeans。JavaBean的屬性,或者在EnterPRise JavaBeans (EJBs)中由外部數據源得到的數據--表示的是狀態,而方法則是表示可以在上面進行的操作。操作并不需要被JavaBean方法定義;在簡單的情況下,操作可以放置到Action對象中,雖然這樣會令處理和分級之間的區別變得模糊。

  Struts MVC應用的視圖通常由JSP構造,它可以使用HTML或者XML靜態格式化頁面,還提供了一個方法可動態插入自定義的內容來響應用戶的請求。Structs的一個要害是它的自定義標簽庫,它提供了一個方法,可以很輕易地使用JSP來創建用戶界面。

  Structs架構包含有自定義的標簽庫,可以通過各種不同的方式使用。雖然就使用該架構來說,這些庫并不是必須的,不過它們包含的標簽在你的應用的許多地方都很有用。Structs的一些標簽庫包括有:

  . structs-html標簽庫。該庫可以用作創建動態HTML用戶界面或者表格。

  . structs-bean標簽庫。對于將JavaBean代碼放到JSP頁面,該庫提供了一個加強方式,通過 標簽實現。

  . struts-logic標簽庫。該庫可以治理有條件地產生輸出文本,遍歷對象collections以重復地產生輸出文本,還有應用流控制。

  . struts-template標簽庫。該庫包含的標簽可用作為頁面創建動態的JSP模板,這些頁面都擁有一個公共的外觀或者公同的格式。

  使用這些標簽庫和其它的任何庫都是一樣的。因為庫已經寫好了,你所要做的就是告訴servlet引擎要使用它。在Tomcat中,你可以通過web.xml文件中的<taglib>標簽來指定標簽庫的URI,以及Web服務器系統上標簽庫描述文件的位置。

  The Small Print

  Jakarta工程可讓你下載Structs的二進制版本,或者直接由源代碼中編譯它。二進制版工作得很好,不過假如你擁有一個不常見的軟件平臺,或者想學習一下如何編譯它,也不是很困難。無論你的選擇如何,Structs都需要以下幾個軟件:

  . Java Development Kit (JDK). 你需要為你的操作系統下載和安裝一個Java 2 JDK實現。

 ?。甋ervlet容器。你還需要下載和安裝一個兼容Servlet API規范(2.2版以上)、JSP規范(1.1版以上)的servlet容器。一個好的選擇是下載Apache的Tomcat,它可以支持網頁服務,并且可以運行servlet和JSP。

 ?。甔ML解析器。Struts需要一個兼容Java API for XML Parsing (JAXP)規范(1.1版或以上)的XML解析器。

  .Servlet API類。為了編譯Structs或者使用Structs的應用,你將需要一個包含有servlet和JSP API類的servlet.jar文件。大部分的servlet容器都包含有這個JAR文件。

 ?。甁DBC 2.0 optional package類。Structs支持javax.sql.DataSource的一個可選實現,因此它需要這些API類來編譯。你可以在這個網址下載這些包類:http://java.sun.com/products/jdbc/download.html

  要使用Structs來建立一個應用,需要遵從以下步驟。首先,將Structs中的lib/commons-*.jar和 lib/struts.jar文件拷貝到應用中的WEB-INF/lib目錄。然后將Structs中的全部標簽庫描述文件(lib/struts-*.tld)拷貝到你的Web應用中的WEB-INF目錄。

  拷貝完這些文件后,你就可以修改Web應用中的web.xml文件,令它包含有一個<servlet>元素來定義控制器servlet,還有一個<servlet-mapping>元素以指明哪個請求的URI被映射到這個servlet。假如你使用默認的目錄來進行一個標準的安裝,你可以使用Struts例子應用中的web.xml文件來作為一個參考,看它是如何設置的,然后你就可以修改Web應用中的web.xml文件來指定適當的標簽庫聲明。再次申明,你可以由Structs的例子應用中學習如何設置。

  修改完web.xml文件后,在WEB-INF目錄創建一個稱為struts-config.xml的文件,在其中定義操作映射和其它與你的應用相關的特性。最后,在每個將使用Struts自定義標簽的JSP頁面的頂部,加入Struts自定義標簽的聲明。

  Struts這個名字來源于在建筑和舊式飛機中使用的支持金屬架。它的目的是為了幫助你減少在運用MVC設計模型來開發Web應用的時間。你仍然需要學習和應用該架構,不過它將可以完成其中一些繁重的工作。假如想混合使用servlets和JSP的優點來建立可擴展的應用,Struct可以幫助你完成其中的一些工作。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
少妇高潮久久久久久潘金莲| 成人福利视频网| 亚洲大胆人体在线| 国产欧美一区二区白浆黑人| 成人天堂噜噜噜| 亚洲国内高清视频| 国产精品白嫩初高中害羞小美女| 国产精品免费久久久久久| 亚洲aⅴ男人的天堂在线观看| 精品中文字幕在线观看| 亚洲人成在线观看| 欧美在线不卡区| 日本最新高清不卡中文字幕| 日韩av一区二区在线| 亚洲性视频网址| 国产噜噜噜噜噜久久久久久久久| 国产专区欧美专区| 精品中文字幕在线观看| 欧美精品18videos性欧| 欧美高清视频免费观看| 亚洲伊人久久大香线蕉av| 亚洲美女激情视频| 国产精品99免视看9| 91欧美精品午夜性色福利在线| 欧美激情区在线播放| 2019日本中文字幕| 亚洲自拍高清视频网站| 欧美成人精品一区二区| 国产91精品不卡视频| 欧美激情区在线播放| 久久精品久久久久久国产 免费| 久久精品在线播放| 欧美成人sm免费视频| 亚洲国产精久久久久久| 国产精品女主播| 亚洲天堂日韩电影| 日韩精品免费在线视频| 日韩综合视频在线观看| 日韩欧亚中文在线| 欧美大肥婆大肥bbbbb| 国产精品美女无圣光视频| 欧洲成人免费视频| 国产香蕉精品视频一区二区三区| 欧美大尺度电影在线观看| 91人人爽人人爽人人精88v| 午夜精品久久久久久久99热浪潮| 狠狠色狠狠色综合日日五| 色妞在线综合亚洲欧美| 91精品综合久久久久久五月天| 成人欧美一区二区三区黑人孕妇| 精品久久久久久国产| 欧美一级大片视频| 98午夜经典影视| 国产精品揄拍500视频| 欧美精品18videos性欧| 欧美日韩国产中文字幕| 操日韩av在线电影| 丁香五六月婷婷久久激情| 精品国产一区二区三区久久久| 亚洲黄色有码视频| 欧美日韩国产一区二区| 色妞久久福利网| 一区二区三区日韩在线| 亚洲跨种族黑人xxx| 精品偷拍一区二区三区在线看| 国产亚洲精品美女久久久久| 欧美一区视频在线| 亚洲天堂2020| 日韩免费不卡av| 色噜噜国产精品视频一区二区| 色噜噜狠狠狠综合曰曰曰| 欧美视频裸体精品| 国产精品久久久久久久久久久不卡| 51精品在线观看| 国产精品一区二区女厕厕| 国产成人av在线播放| 国产精品黄页免费高清在线观看| 一区二区三区四区精品| 欧美日韩国产综合新一区| 538国产精品视频一区二区| 久久精品99久久香蕉国产色戒| 91在线高清视频| 欧美精品一二区| 91国内精品久久| 久久影视三级福利片| 欧美日本国产在线| 国产偷国产偷亚洲清高网站| 97超碰国产精品女人人人爽| 亚洲成人教育av| 高清欧美性猛交| 国产精品久久久久久久天堂| 97在线观看免费| 国内精品模特av私拍在线观看| 国产亚洲精品va在线观看| 欧美多人爱爱视频网站| 国产欧美日韩免费| 久久欧美在线电影| 中文字幕亚洲一区二区三区五十路| 午夜免费日韩视频| 色无极影院亚洲| 91九色蝌蚪国产| 欧美成人剧情片在线观看| 欧美日韩加勒比精品一区| 亚洲欧美在线免费| 色婷婷av一区二区三区久久| 成人乱人伦精品视频在线观看| 国产成人拍精品视频午夜网站| 久久亚洲国产成人| 久久亚洲精品国产亚洲老地址| 亚洲国产精品大全| 欧美亚洲国产成人精品| 欧美日韩不卡合集视频| 69久久夜色精品国产7777| 久久久精品免费视频| 日韩在线观看免费高清完整版| 日本高清不卡在线| 亚洲一区二区自拍| 精品福利在线视频| 最近2019中文免费高清视频观看www99| 91中文精品字幕在线视频| 国产在线一区二区三区| 欧美又大又粗又长| 欧洲成人性视频| 91精品国产91久久久久久久久| 欧美日韩不卡合集视频| 韩国美女主播一区| 最近中文字幕mv在线一区二区三区四区| 精品久久久久久电影| 久久高清视频免费| 亚洲第一色中文字幕| 国内伊人久久久久久网站视频| 日韩欧美国产视频| 国产精品福利无圣光在线一区| 欧美精品video| 欧美激情第三页| 久久夜色精品亚洲噜噜国产mv| 亚洲国产高清高潮精品美女| 一本色道久久88亚洲综合88| 精品久久久国产精品999| 亚洲欧美中文字幕在线一区| 久久国产精品久久久久久| 亚洲黄色有码视频| 福利精品视频在线| 亚洲自拍偷拍在线| 97在线日本国产| 欧美黑人xxx| 国产精品日韩在线一区| 亚洲激情在线观看| 成人淫片在线看| 综合激情国产一区| 欧美国产乱视频| 久久免费视频网站| 这里只有精品视频| 亚洲女人被黑人巨大进入| 国产精品a久久久久久| 青青久久aⅴ北条麻妃| 日韩精品在线免费观看| 亚洲精品黄网在线观看| 国产精品亚发布| 亚洲欧美日韩国产精品| 欧美激情一级欧美精品| 国产精品美女主播| 国产精品一久久香蕉国产线看观看| 色哟哟入口国产精品|