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

正文內(nèi)容

基于j2ee網(wǎng)上購(gòu)書(shū)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2024-10-03 19:16 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 ,向模型查詢(xún)業(yè)務(wù)狀態(tài)。接收模型發(fā)出的數(shù)據(jù),更新顯示用戶界面。 模型 (Model)是應(yīng)用程序的主題,它用于表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)邏輯。一個(gè)模型可以同事為多個(gè)視圖提供數(shù)據(jù),從而提高了代碼的可重用性。 控制器 (Controller),顧名思義起控制作用。它接收用戶輸入,并調(diào)用模型和視圖來(lái)完成用戶請(qǐng)求。再用戶提交表單時(shí),控制器本身并不做任何處理和輸出工作??刂破?所做的僅僅是:接收請(qǐng)求,然后調(diào)用模型組件處理請(qǐng)求,最后調(diào)用視圖來(lái)顯示 模型處理 后返回的 數(shù)據(jù)。 圖 2- 1 簡(jiǎn)單演示了 MVC 架構(gòu)在企業(yè)環(huán)境中的工作原理。 14 這里將控制器顯示為五角形,將模組顯示為組件,將視圖顯示為可視頁(yè)面,并解釋了用戶操作和事件響應(yīng)。 設(shè)計(jì)模式 設(shè)計(jì)模式概述 設(shè)計(jì)模式是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過(guò)分類(lèi)編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 毫無(wú)疑問(wèn),設(shè)計(jì)模式于己于他人于系統(tǒng)都是多贏的,設(shè)計(jì)模 式使代碼編制真正工程化,設(shè)計(jì)模式是軟件工程的基石,如同大廈的一塊塊磚石一樣。 GoF( Gang of Four,指《設(shè)計(jì)模式 可復(fù)用面向?qū)ο筌浖幕A(chǔ)》的四位作者: Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides)的“設(shè)計(jì)模式”是第一次將設(shè)計(jì)模式提升到理論高度,并將之規(guī)范化,提出了 23 種基本設(shè)計(jì)模式,自此,在可復(fù)用面向?qū)ο筌浖陌l(fā)展過(guò)程中,新的大量的設(shè)計(jì)模式不斷出現(xiàn) [5]。 設(shè)計(jì)模式的基本要素 設(shè)計(jì)模式使人們可以更加簡(jiǎn)單方 便地復(fù)用成功的設(shè)計(jì)和體系結(jié)構(gòu)。將已證實(shí)的技術(shù) 表述成設(shè)計(jì)模式也會(huì)使新系統(tǒng)開(kāi)發(fā)者更加容易理解其設(shè)計(jì)思路 [6]。 ( pattern name) 一個(gè)助記名,它用一兩個(gè)詞來(lái)描述模式的問(wèn)題、解決方案和效果。命名一個(gè)新 15 的模式增加了我們的設(shè)計(jì)詞匯。設(shè)計(jì)模式允許我們?cè)谳^高的抽象層次上進(jìn)行設(shè) 計(jì)。基于一個(gè)模式詞匯表,我們自己以及同事之間就可以討論模式并在編寫(xiě)文檔時(shí)使用它們。模式名可以幫助我們思考,便于我們與其他人交流設(shè)計(jì)思想及設(shè)計(jì)結(jié)果。找到恰當(dāng)?shù)哪J矫彩俏覀冊(cè)O(shè)計(jì)模式編目工作的難點(diǎn)之一 [8]。 (problem) 描述了應(yīng)該在何時(shí)使用模式。它解釋了設(shè)計(jì)問(wèn)題和問(wèn)題存在的前因后果,它可能描述了特定的設(shè)計(jì)問(wèn)題,如怎樣用對(duì)象表示算法等。也可能描述了導(dǎo)致不靈活設(shè)計(jì)的類(lèi)或?qū)ο蠼Y(jié)構(gòu)。有時(shí)候,問(wèn)題部分會(huì)包括使用模式必須滿足的一系列先決條件。 (solution) 描述了設(shè)計(jì)的組成成分,它們之間的相互關(guān)系及各自的職責(zé)和協(xié)作方式 [37]。因?yàn)槟J骄拖褚粋€(gè)模板,可應(yīng)用于多種不同場(chǎng)合,所以解決方案并不描述一個(gè)特定而具體的設(shè)計(jì)或?qū)崿F(xiàn),而是提供設(shè)計(jì)問(wèn)題的抽象描述和怎樣用一個(gè)具有一般意義的元素組合(類(lèi)或?qū)ο蠼M合)來(lái)解決這個(gè)問(wèn)題 。 (consequences) 描述了模式應(yīng)用的效果及 使用模式應(yīng)權(quán)衡的問(wèn)題。盡管我們描述設(shè)計(jì)決策時(shí),并不總提到模式效果,但它們對(duì)于評(píng)價(jià)設(shè)計(jì)選擇和理解使用模式的代價(jià)及好處具有重要意義 [38]。軟件效果大多關(guān)注對(duì)時(shí)間和空間的衡量,它們也表述了語(yǔ)言和實(shí)現(xiàn)問(wèn)題。因?yàn)閺?fù)用是面向?qū)ο笤O(shè)計(jì)的要素之一,所以模式效果包括它對(duì)系統(tǒng)的靈活性、擴(kuò)充性或可移植性的影響,顯式地列出這些效果對(duì)理解和評(píng)價(jià)這些模式很 有幫助。 設(shè)計(jì)模式的作用 外 觀( Facade):為了系統(tǒng)中的一組功能調(diào)用提供一個(gè)一致的接口,這個(gè)接口使 得這一子系統(tǒng)更加容易使用; 裝飾( Decorate):當(dāng)不能采用生成子類(lèi)的方法進(jìn)行擴(kuò)充時(shí),動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的功能; 單件( Singleton):保證一個(gè)類(lèi)僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)他的全局訪問(wèn)點(diǎn); 16 模板方法( Template Method):在方法中定義算法的框架,而將算法中的一些操作步驟延遲到子類(lèi)中實(shí)現(xiàn)。 模式( pattern)就是做事的一種方法,也即實(shí)現(xiàn)某個(gè)目標(biāo)的途徑,或者技術(shù)。這種捕獲有效技術(shù)的思 想可以應(yīng)用到許多領(lǐng)域當(dāng)中,比如烹飪、生產(chǎn)焰火制品、開(kāi)發(fā)軟件以及其他一些行業(yè)。對(duì)于任何一個(gè)正邁 向成熟的行業(yè),人們總會(huì)開(kāi)始尋找一些通用和有效的方法,來(lái)達(dá)到目標(biāo)并解決不同場(chǎng)合中的問(wèn)題。由某個(gè)行業(yè)的從業(yè)人員組成的社區(qū)通常會(huì)發(fā)明一些專(zhuān)業(yè)術(shù)語(yǔ),以便于同行之間進(jìn)行交流。這其中的某些專(zhuān)業(yè)術(shù)語(yǔ)將稱(chēng)為模式,即實(shí)現(xiàn)特定目標(biāo)的公認(rèn)技術(shù)。隨著某個(gè)行業(yè)及其專(zhuān)業(yè)術(shù)語(yǔ)的發(fā)展,一些作者便開(kāi)始起到重要的作用。他們將某個(gè)行業(yè)的模式記錄歸檔,參與標(biāo)準(zhǔn)化專(zhuān)業(yè)術(shù)語(yǔ),并且公開(kāi)傳播這些有效的技術(shù) [32]。 設(shè)計(jì)模式的好處 ? 對(duì)不斷重復(fù)出現(xiàn)問(wèn)題,復(fù)用既有的、高質(zhì)量的解決方案 ? 確立通用的術(shù)語(yǔ),改善團(tuán)隊(duì)內(nèi)的溝通。 ? 提升思考層次 ? 判斷設(shè)計(jì)是 否正確,而不僅僅是能夠奏效 ? 改善個(gè)人學(xué)習(xí)和團(tuán)隊(duì)學(xué)習(xí) ? 提高代碼的可修改性和可維護(hù)性 ? 采用更佳設(shè)計(jì)方案,即使沒(méi)有明確使用模式 ? 發(fā)現(xiàn)巨型繼承層次結(jié)構(gòu)的代替放案 系統(tǒng)使用的框架與技術(shù) 設(shè)計(jì)模式和框架 現(xiàn)在,可復(fù)用面向?qū)ο筌浖到y(tǒng)現(xiàn)在一般劃分為三大類(lèi):應(yīng)用程序、工具箱和框架 (Framework),我們平時(shí)開(kāi)發(fā)的具體軟件都是應(yīng)用程序; Java 的 API 屬于工具箱 。而框架是構(gòu)成一類(lèi)特定軟件可復(fù)用設(shè)計(jì)的一組相互協(xié)作的類(lèi)。 EJB( Enterprise JavaBeans)是 Java 應(yīng)用于企業(yè)計(jì)算的框架 。 框架通常定義了應(yīng)用體系的整體結(jié)構(gòu)類(lèi)和對(duì)象的關(guān)系等等設(shè)計(jì)參數(shù),以便于具 17 體應(yīng)用實(shí)現(xiàn)者能集中精力于應(yīng)用本身的特定細(xì)節(jié)。框架主要記錄軟件應(yīng)用中共同的設(shè)計(jì)決策,框架強(qiáng)調(diào)設(shè)計(jì)復(fù)用,因此框架設(shè)計(jì)中必然要使用設(shè)計(jì)模式 [4]。 另外,設(shè)計(jì)模式有助于對(duì)框架結(jié)構(gòu)的理解,成熟的框架通常使用了多種設(shè)計(jì)模式,如果你熟悉這些設(shè)計(jì)模式,毫無(wú)疑問(wèn),你將迅速掌握框架的結(jié)構(gòu),我們一般開(kāi)發(fā)者如果突然接觸 EJB、 J2EE 等框架,會(huì)覺(jué)得特別難學(xué),難掌握,那么轉(zhuǎn)而先掌握設(shè)計(jì)模式,無(wú)疑是給了你剖析 EJB 或 J2EE 系統(tǒng)的一把利器。軟件框架( Frameworks)和設(shè)計(jì)模式易被混淆。它們兩者時(shí)緊密相關(guān)的。下表列出了兩者的相似點(diǎn)和不同點(diǎn) [10][19]。 18 Struts 框架 Struts 概述 Struts 是在 JSP Model2 的基礎(chǔ)上實(shí)現(xiàn)的一個(gè) MVC 框架,它很好的結(jié)合了 Jsp, Java Servlet, Java Bean, Taglib 等技術(shù)。結(jié)構(gòu)如圖 22。在 struts 框架中,模型分為兩個(gè)部分: ? 系統(tǒng)的內(nèi)部狀態(tài) ? 可 19 以改變狀態(tài)的操作(事務(wù)邏輯) 內(nèi)部狀態(tài)通常 由一組 ActionForm JavaBean 表示。根據(jù)設(shè)計(jì)或應(yīng)用程序復(fù)雜度的不同,這些 Bean 可以是自包含的并具有持續(xù)的狀態(tài),或只在需要時(shí)才獲得數(shù)據(jù)(從某個(gè)數(shù)據(jù)庫(kù))。大型應(yīng)用程序通常在方法內(nèi)部封裝事務(wù)邏輯(操作),這些方法可以被擁有狀態(tài)信息的 bean 調(diào)用。比如購(gòu)物車(chē) cart,它擁有用戶購(gòu)買(mǎi)商品的信息,可能還有 addCart()方法用來(lái) 添加購(gòu)物車(chē)信息 ,并向倉(cāng)庫(kù)發(fā)定貨信息。小型程序中,操作可能會(huì)被內(nèi)嵌在 Action 類(lèi),它是 struts 框架中控制器角色的一部分。當(dāng)邏輯簡(jiǎn)單時(shí)這個(gè)方法很適合。建議用戶將事務(wù)邏輯(要做什么)與 Action 類(lèi)所扮演的角色(決定做什么)分開(kāi)。 選擇 Struts 的原因 簡(jiǎn)單、易懂。容易被人采用,功能強(qiáng)大。 視圖 控制器 (MVC)設(shè)計(jì)模式,使用 struts 可以開(kāi)發(fā)使用JAVAServlets 和 JavaServer Pages 的高性能、面向事務(wù)的 WEB 應(yīng)用程序。 提供的模型 2 體系結(jié)構(gòu),視圖層 事務(wù)處理層 數(shù)據(jù)模型層,通過(guò)明確的應(yīng)用程序分工使得事務(wù)邏輯和顯示邏輯彼此相互獨(dú)立,視圖層 (html,JSP)將用戶所需要的任何數(shù)據(jù)向事務(wù)處理層 (servlet)發(fā)送請(qǐng)求,事務(wù)處理層將根據(jù)請(qǐng)求處理相關(guān)事務(wù) (包括處理請(qǐng)求,驗(yàn)證數(shù)據(jù)等 ),將用戶所需要的數(shù)據(jù)提交到數(shù)據(jù)模型層,數(shù)據(jù)模型層從數(shù)據(jù)庫(kù)取得數(shù)據(jù)再反饋給事務(wù)處理層,由事務(wù)處理層傳遞給視圖層顯示數(shù)據(jù)信息。 提供強(qiáng)大的自定義標(biāo)簽庫(kù) (taglib),編程人員可以根據(jù)需要編寫(xiě)各種類(lèi)型的標(biāo)簽。 本身自帶的 validator 框架, tiles 和 jstl 標(biāo)記庫(kù)標(biāo)記,更能為編程人員提供方便,提高編程效率。更能使整個(gè)項(xiàng)目結(jié)構(gòu)性良好、清晰,便于維護(hù)。 能很好的與 hibernate、 spring 整合 20 Struts 框架對(duì)應(yīng)客戶請(qǐng)求的工作流程如下。 判斷 ActionMapping 實(shí)例是否存在。如果實(shí)例不存在,則創(chuàng)建一個(gè)ActionMapping 對(duì)象,它包含了把請(qǐng)求轉(zhuǎn)發(fā)給哪個(gè) Action 的消息。 判斷 ActionForm 實(shí)例是否存在。如果實(shí)例不存在,則創(chuàng)建一個(gè) ActionForm 對(duì)象,并把客戶提交的表單數(shù)據(jù)保存到 ActionForm 對(duì)象中。根據(jù)配置信息決定是否需要表單驗(yàn)證。如果需要驗(yàn)證,就調(diào)用 ActionForm 的 validate()方法。如果ActionForm 的 validate()方法返回 null,或返回一個(gè)不包含 ActionMessage 的ActionErrors 對(duì)象,就表示表單驗(yàn)證成功。如果 ActionForm 的 validate()方法 返回 21 一個(gè)或多個(gè) ActionError 的 ActionErrors 對(duì)象,則表示表單驗(yàn)證失敗,將直接把請(qǐng)求轉(zhuǎn)發(fā)給包含客戶提交表單的 JSP 組件。在這種情況下,不會(huì)再創(chuàng)建 Action 對(duì)象并調(diào)用 Action 的 execute 方法。 ActionServlet 根據(jù)配置信息決定將請(qǐng)求轉(zhuǎn)發(fā)給哪個(gè)Action。如果相應(yīng)的 Action 實(shí)例不存在,就先創(chuàng)建這個(gè)實(shí)例,然后調(diào)用其 execute方法。 Action 的 execute 方法返回一個(gè) ActionForward 對(duì)象, ActionServlet 再把客戶請(qǐng)求轉(zhuǎn)發(fā)給 ActionForward 對(duì)象指向的 JSP 組件。 ActionForward 對(duì)象指向的 JSP組件生成動(dòng)態(tài)網(wǎng)頁(yè),返回給客戶。 Hibernate 框架 Hibernate 概述 Hibernate 是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì) JDBC 進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得 Java 程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。Hibernate 可以應(yīng)用在任何使用 JDBC 的場(chǎng)合,既可以在 Java 的客戶端程序使用,也可以在 Servlet/JSP 的 Web 應(yīng)用中使用,最具革命意義的是, Hibernate 可以在應(yīng)用 EJB 的 J2EE 架構(gòu)中取代 CMP,完成數(shù)據(jù)持久化的重任 [20]。 Hibernate 的核心接口一共有 5 個(gè),分別為: Session、 SessionFactory、 Transaction、Query 和 Configuration。這 5 個(gè)核心接口在任何開(kāi)發(fā)中都會(huì)用到。通過(guò)這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對(duì)這五的核心接口分 別加以介紹 [28]。 ? Session 接口: Session 接口負(fù)責(zé)執(zhí)行被持久化對(duì)象的 CRUD 操作 (CRUD 的任務(wù)是完成與數(shù)據(jù)庫(kù)的交流,包含了很多常見(jiàn)的 SQL 語(yǔ)句。 )。但需要注意的是 Session 對(duì)象是非線程安全的。同時(shí), Hibernate 的 session 不同于 JSP應(yīng)用中的 HttpSession。這里當(dāng)使用 session 這個(gè)術(shù)語(yǔ)時(shí),其實(shí)指的是Hibernate 中的 session,而以后會(huì)將 HttpSesion 對(duì)象稱(chēng)為用戶 session。 ? SessionFactory 接口: SessionFactroy 接口負(fù)責(zé)初 始化 Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建 Session 對(duì)象。這里用到了工廠模式。需要注意的是 SessionFactory 并不是輕量級(jí)的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè) SessionFactory 就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫(kù)時(shí), 可以為每個(gè)數(shù)據(jù)庫(kù)指定一個(gè) SessionFactory。 22 ? Configuration 接口: Configuration 接口負(fù)責(zé)配置并啟動(dòng) Hibernate,創(chuàng)建 ? SessionFactory 對(duì)象。在 Hibernate 的啟動(dòng)的過(guò)程中, Configuration 類(lèi)的實(shí)例 首先定位映射文檔位置、讀取配置,然后創(chuàng)建 SessionFactory 對(duì)象。Transaction 接口: Transaction 接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,可發(fā)人員也可以設(shè)計(jì)編寫(xiě)自己的底層事務(wù)處理代碼。 ? Query 和 Criteria 接口: Query 和 Criteria 接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫(kù)查詢(xún)。它可以使用
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1