freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于web的車輛違章管理系統(tǒng)(編輯修改稿)

2025-01-11 01:18 本頁面
 

【文章內(nèi)容簡介】 去處理請求,然后再確定用哪個視圖來顯示返回的數(shù)據(jù)。 為什么要使用 MVC 大部分 Web 應(yīng)用程序都是用像 ASP, PHP,或者 CFML 這樣的過程化 (自 版本后已全面支持面向?qū)ο竽P?)語言來創(chuàng)建的。它們將像數(shù)據(jù)庫查詢語句這樣的數(shù)據(jù)層代碼和像 HTML這樣的表示層代碼混在一起。經(jīng)驗比較豐富的開發(fā)者會將數(shù)據(jù)從表示層分離開來,但這通常不是很容易做到的,它需要精心的計劃和不斷的嘗試。 MVC從根本上強(qiáng)制性的將它們分開。盡管構(gòu)造 MVC 應(yīng)用程序需要一些額外的工作,但是它給我們帶來的好處是毋庸置疑的。 首先,最重要的一點是多個視圖能共享一個模型,現(xiàn)在需要用越來越多的方式來訪問你的應(yīng)用程序。對此,其中一個解決之道是使用 MVC,無論你的用戶想要 Flash 界面或是 WAP 界面;用一個模型就能處理它們。由于你已經(jīng)將數(shù)據(jù)和業(yè)務(wù)規(guī)則從表示層分開,所以你可以最大化的重用你的代碼了。 由于模型返回的數(shù)據(jù)沒有進(jìn)行格式化,所以同樣的構(gòu)件能被不同界面使用。例如,很多數(shù)據(jù)可能用 HTML 來表示,但是它們也有可能要用 Adobe Flash和 WAP 來表示。模型也有狀態(tài)管理和數(shù)據(jù)持久性處理的功能,例如,基于會話的購物車和電子商務(wù)過程 也能被 Flash 網(wǎng)站或者無線聯(lián)網(wǎng)的應(yīng)用程序所重用。 因為模型是自包含的,并且與控制器和視圖相分離,所以很容易改變你的應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。如果你想把你的數(shù)據(jù)庫從 MySQL 移植到Oracle,或者改變你的基于 RDBMS 數(shù)據(jù)源到 LDAP,只需改變你的模型即可。一旦你正確的實現(xiàn)了模型,不管你的數(shù)據(jù)來自數(shù)據(jù)庫或是 LDAP 服務(wù)器,視圖將會正確的顯示它們。由于運(yùn)用 MVC 的應(yīng)用程序的三個部件是相互獨(dú)立,改變其中一個不會影響其它兩個,所以依據(jù)這種設(shè)計思想你能構(gòu)造良好的松耦合的構(gòu)件。 對我來說,控制器也提供了一個好 處,就是可以使用控制器來聯(lián)接不同 第二章 關(guān)鍵技術(shù)分析及其在課題中的應(yīng)用 11 的模型和視圖去完成用戶的需求,這樣控制器可以為構(gòu)造應(yīng)用程序提供強(qiáng)有力的手段。給定一些可重用的模型和視圖,控制器可以根據(jù)用戶的需求選擇模型進(jìn)行處理,然后選擇視圖將處理結(jié)果顯示給用戶。 SSH 框架技術(shù) Struts2 發(fā)展概述 : 經(jīng)過六年多的發(fā)展, Struts1 已經(jīng)成為了一個高度成熟的框架,不管是穩(wěn)定性還是可靠性都得到了廣泛的證明。市場占有率超過 20%,擁有豐富的開發(fā)人 群,幾乎已經(jīng)成為了事實上的工業(yè)標(biāo)準(zhǔn)。但是隨著時間的流逝,技術(shù)的進(jìn)步, Struts1的局限性也越來越多地暴露出來,并且制約了 Struts1 的繼續(xù)發(fā) 展。 對于 Struts1 框架而言,由于與 JSP/Servlet 耦合非常緊密,因而導(dǎo)致了一些嚴(yán)重 的問題。首先, Struts1 支持的表現(xiàn)層技術(shù)單一。由于 Struts1 出現(xiàn)的年代比較早,那個時候沒有 FreeMarker、 Velocity 等技術(shù), 因此它不可能與這些視圖層的模版技術(shù)進(jìn)行整合。其次, Struts1 與 Servlet API 的嚴(yán)重耦合,使應(yīng)用難于測試。最后, Struts1 代碼嚴(yán)重依賴于 Struts1 API,屬于侵入性框架。 從目前的技術(shù)層面上看,出現(xiàn)了許多與 Struts1 競爭的視圖層框架,比如 JSF、 Tapestry 和 Spring MVC 等。這些框架由于出現(xiàn)的年代比較近,應(yīng)用了最新的設(shè)計理念,同時也從 Struts1 中吸取了經(jīng)驗,克服了很多不足。這些框架的出現(xiàn)也促進(jìn)了 Struts 的發(fā)展。目前, Struts 已經(jīng)分化 成了兩個框架:第一個是在傳統(tǒng)的 Struts1 的基礎(chǔ)上,融合了另外的一個優(yōu)秀的 Web 框架 WebWork 的 Struts2。Struts2 雖然是在 Struts1 的基礎(chǔ)上發(fā)展起來的,但是實質(zhì)上是以 WebWork 為核心的。 Struts2 為傳 統(tǒng)的 Struts1 注入了 WebWork 的先進(jìn)的設(shè)計理念,統(tǒng)一了Struts1 和 WebWork 兩個框架。 Struts1 分化出來的另外一個框架是 Shale。這個框架遠(yuǎn)遠(yuǎn)超出了 Struts1 原有的設(shè)計思想,與原有的 Struts1 關(guān)聯(lián)很少,使用了全新的設(shè)計思想。 Shale 更像一個新的 框架而不 是 Struts1 的升級。 本文下面的內(nèi)容將主要討論 Struts2。 體系結(jié)構(gòu) : Struts2 的體系與 Struts1 體系的差別非常大,因為 Struts2 使用了 WebWork的設(shè)計核心,而不是 Struts1 的設(shè)計核心。 Struts2 中大量使用攔截器來處理用戶的請求,從而允許用戶的業(yè)務(wù)邏輯控制器與 Servlet API 分離。 Struts2 框架的大概處理流程如下: 12 基于 Web 的車輛違章管理系統(tǒng) 加載類( FilterDispatcher) 讀取配置( struts 配置文件中的 Action) 派發(fā)請求 (客戶端發(fā)送請求) 調(diào)用 Action( FilterDispatcher 從 struts 配置文件中讀取與之相對應(yīng)的 Action ) 啟用攔截器( WebWork 攔截器鏈自動對請求應(yīng)用通用功能,如驗證) 處理業(yè)務(wù)(回調(diào) Action 的 execute()方法) 返回響應(yīng)(通過 execute 方法將信息返回到 FilterDispatcher) 查找響應(yīng)( FilterDispatcher 根據(jù)配置查找響應(yīng)的是什么信息如: SUCCESS、ERROR,將跳轉(zhuǎn)到哪個 jsp頁面) 響應(yīng)用戶( jsp客戶瀏覽器端顯示) struts2 標(biāo)簽庫(相比 struts1 的標(biāo)簽庫, struts2 是大大加強(qiáng)了,對數(shù)據(jù)的操作功能很強(qiáng)大) 對比 Struts1 通過上面對 Struts2 體系結(jié)構(gòu)的了解,我們發(fā)現(xiàn) Struts2 對 Struts1 進(jìn)行了巨大的改進(jìn)。主要表現(xiàn)在如下幾個方面: 在 Action 的實現(xiàn)方面: Struts1 要求必須統(tǒng)一擴(kuò)展自 Action 類,而 Struts2中可以是一個普通的 POJO。 線程模型方面: Struts1 的 Action 工作在單例模式,一個 Action 的實例處理所有的請求。 Struts2 的 Action 是一個請求對應(yīng)一個實例。沒有線程安全方面的問題。 Servlet 依賴方面: Struts1 的 Action 依賴于 Servlet API,比如 Action的 execute 方法的參數(shù)就包括 request 和 response 對象。這使程序難于測試。Struts2 中的 Action 不 再依賴于 Servlet API,有利于測試,并且實現(xiàn) TDD。 封裝請求參數(shù): Struts1 中強(qiáng)制使用 ActionForm 對象封裝請求的參數(shù)。Struts2可以選擇使用 POJO類來封裝 請求的參數(shù),或者直接使用 Action的屬性。 表達(dá)式語言方面: Struts1 中整合了 EL,但是 EL 對集合和索引的支持不強(qiáng),Struts2 整合了 OGNL( Object Graph NavigationLanguage)。 綁定值到視圖技術(shù): Struts1 使用標(biāo)準(zhǔn)的 JSP, Struts2 使用 “ValueStack”技術(shù)。 類型轉(zhuǎn)換: Struts1 中的 ActionForm 基本使用 String 類型的屬性。 Struts2中使用 OGNL 進(jìn)行轉(zhuǎn)換,可以更方便的使用。 數(shù)據(jù)校驗: Struts1 中支持覆蓋 validate 方法或者使用 Validator 框架。 第二章 關(guān)鍵技術(shù)分析及其在課題中的應(yīng)用 13 Struts2 支持重寫 validate 方法或者使用 XWork 的驗證框架。 Action 執(zhí)行控制的對比: Struts1 支持每一個模塊對應(yīng)一個請求處理,但是模塊中的所有 Action 必須共享相同的生命周期。 Struts2 支持通過攔截器堆棧為每一個 Action 創(chuàng)建不同的生命周期。 本系統(tǒng) struts主要配置: struts constant name= value=gb2312/constant ! 開發(fā)模式的配置,為了提示信息更加容易讀懂 constant name= value=true/constant ! 不處理 dwr的路徑的請求 constant name= value=/dwr/.*,/dwr/test/.*/constant constant name= value=spring/constant include file=/include include file=/include include file=/include include file=/include include file=/include include file=/include package name=action extends=strutsdefault action name=carpeccancyselect class=cps result name=success//result /action action name=cardpeccancyselect class=dps result name=success//result /action action name=rejectselect class=rjs result name=success//result /action /package /struts: Hibernate Hibernate 是一個開放源代碼的對象關(guān)系映射框架,它對 JDBC 進(jìn)行了非常輕量級的對象封裝,使得 Java 程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 Hibernate 可以應(yīng)用在任何使用 JDBC 的場合,既可以在 Java 的客戶端程序使用,也可以在 Servlet/JSP 的 Web 應(yīng)用中使用,最具革命意義的是,Hibernate 可以在應(yīng)用 EJB 的 J2EE 架構(gòu)中取代 CMP,完成數(shù)據(jù)持久化的重任。 其 14 基于 Web 的車輛違章管理系統(tǒng) 體系結(jié)構(gòu)如圖 所示。 圖 Hibernate 體系結(jié)構(gòu)的概要圖 Spring Spring 是一個開源框架,它由 Rod Johnson 創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。 Spring 使用基本的 JavaBean 來完成以前只可能由 EJB 完成的事情。然 而, Spring 的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何 Java 應(yīng)用都可以從 Spring 中受益。 ◆ 目的:解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性 ◆ 功能:使用基本的 JavaBean 代替 EJB,并提供了更多的企業(yè)應(yīng)用功能 ◆ 范圍:任何 Java 應(yīng)用 簡單來說, Spring 是一個輕量級的控制反轉(zhuǎn)( IoC)和面向切面( AOP)的容器框架。 ◆ 輕量 —— 從大小與開銷兩方面而言 Spring 都是輕量的。完整的 Spring 框架可以在一個大小只有 1MB 多的 JAR 文件里發(fā)布。并且 Spring 所需的處理開銷也是微不足道的。此外, Spring 是非侵入式的:典型 地, Spring 應(yīng)用中的對象不依賴于 Spring 的特定類。 ◆ 控制反轉(zhuǎn) —— Spring 通過一種稱作控制反轉(zhuǎn)( IoC)的技術(shù)促進(jìn)了松耦 合。當(dāng)應(yīng)用了 IoC,一個對象依賴的其它對象會通過被動的方式傳遞進(jìn)來,而不是這個對象自己創(chuàng)建或者查找依賴對象。你可以認(rèn)為 IoC 與 JNDI 相反 —— 不 是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。 ◆ 面向切面 —— Spring 提供了面向切面編程的 豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)(例如審計( auditing)和事務(wù)( transaction)管 第二章 關(guān)鍵技術(shù)分析及其在課題中的應(yīng)用 15 理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對象只 實現(xiàn)它們應(yīng)該做的 —— 完成業(yè)務(wù)邏輯 ——僅此而已。它們并不負(fù)責(zé)(甚至是意識)其它的系統(tǒng)級關(guān)注點,例如日志或事務(wù)支持。 ◆ 容器 —— Spring 包含并管理應(yīng)用對象的配置和 生命周期,在這個意義上它是一種容器,你可以配置你的每個 bean 如何被創(chuàng)建 —— 基于一個可配置原型( prototype),你的 bean 可以創(chuàng)建一個單獨(dú)的實例或者每次需要時都生成一個新的實例 —— 以及它們是如何相互關(guān)聯(lián)的。然而, Spring 不應(yīng)該被混同于傳統(tǒng)的重量級的 EJB 容器,它們經(jīng)常是龐大與笨重的,難以使用。 ◆ 框架 —— Spring 可以將簡單的組件配置、組合成為復(fù)雜的應(yīng)用。在 Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個 XML 文件里。 Spring 也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將 應(yīng)用邏輯的開發(fā)留給了你。 所有 Spring 的
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1