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

正文內(nèi)容

畢業(yè)論文基于javaeeweb應(yīng)用系統(tǒng)的解決方案(參考版)

2024-11-12 19:27本頁面
  

【正文】 而將數(shù)據(jù)存儲邏輯封裝在一系列定義清晰的接口,這會使得開發(fā)者的工作輕松自如,也更是優(yōu)良設(shè)計經(jīng)驗的一。 數(shù)據(jù)訪問層設(shè)計 Data Access Layer 設(shè)計方案 對大多數(shù)的應(yīng)用程序來說,對數(shù)據(jù)進行存儲,讀取,快速可靠的操作顯的尤為重要。 Bean 配置放置在單獨 XML文件也使得我們可以保持代碼的易于管理。也不需要轉(zhuǎn)換到數(shù)據(jù)庫的 SQL代碼。 iBATIS 最重要的優(yōu)點就是它不生成任何代碼。因為 iBATIS 允許在 sqlMap 文件中寫自己的 SQL 語句,可以自由使用所用數(shù)據(jù)庫的額外特性。 SQL映射只是借助簡便的“語句映射”來進行 SQL 層面上的工作 —— 很適合用于實現(xiàn)簡單的需求,以及需要充分控制數(shù)據(jù)庫訪問的業(yè)務(wù)。從簡單的值到 JavaBean 它都可以映射。 完善的透明持久化工具(如 Hibernate)都允許在一個更方便的層面上管理持久對象,也允許更為復雜的類型映射 —— 但也會給領(lǐng)域模型和數(shù)據(jù)模型雙方都增限制。 然而,應(yīng)用程序中的數(shù)據(jù)訪問代碼仍然需要做這些事: 圖 ? 為什么選擇 iBATIS 與高級透明持久化相比, SQL層面上的映射有以下優(yōu)點: Spring 的 iBATIS 工廠 bean()負責加載所有的配置文件。如果一個屬性不存在于一個對象上,這個 bean 的創(chuàng)建就失敗。所有的映射文件都是啟動時加載進來的。當在 Spring 中創(chuàng)建一個iBATIS bean 實例時,我們可以指定這個參考配置文件的位置。但 iBATIS 不允許將特定的對象實例清除出緩存,也就是說,即使只有一個對象被更新,也必須將所有的實例清出緩存。緩存模型是針對每 個查詢語句分別指定的。 除了直接的語句映射之外, SQL映射還可以緩存查詢結(jié)果,緩存策略也是可接插的。在執(zhí)行時,占位符將被指定的參數(shù)值所取代,參數(shù)可能來自參數(shù)映射表, JavaBean 屬性或是簡單的參數(shù)對象。 ? 概述 iBATIS 在 SQL 層面上進行持久化操作,但將使用 JDBC 的細節(jié)全部抽象隔離開來,這就是 iBATIS SQL 映射。另外 , iBATIS 使用 XML映射文件,我們可以為不同的數(shù)據(jù)庫分別配置相應(yīng)的映射文件。它允許開發(fā)者自定義 SQL來組配 bean 的屬性值。如果不想寫臟亂的 JDBC代碼,想對對象創(chuàng)建和 SQL 代碼施加更多的控制,可以考慮使用 iBATIS?;蛟S Hibernate 最差的地方不允許用戶輕松控制如何查詢數(shù)據(jù),并且有一些查詢的效率非常低下。無論如何,如果我們想要完全控制應(yīng)用的數(shù)據(jù)訪問層,會發(fā)現(xiàn) Hibernate 簡單也非常慢。 ? 為什么選擇 Hibernate 使用 Hibernate就如同使用其它任何一個 RAD工具一樣簡單。 其余的 XML 文件允許您把 Java 類映射到數(shù)據(jù)庫表。我們要研究的第一個文件是 。 ? XML 配置文件 功能的核心在于 XML 配置文件。在這時候 , Test 代表的適合 Test 業(yè)務(wù)域?qū)ο蟆?HQL 語言最困難的部分是我們必須習慣使用類(在映射文件中定義了映射關(guān)系的類)來選擇數(shù)據(jù)。 HQL 與 SQL 的差異在于,我們不用針對數(shù)據(jù)模型(即針對表和列等)直接編寫查詢,而是應(yīng)該針對 Java 對象,使用 Java 對象的屬性和關(guān)系編寫查詢。 HQL 用起來相當簡單。 4. 把 XML 配置文件復制到應(yīng)用程序的 CLASSPATH。 要把 Hibernate 集成到現(xiàn)有的 Java 項目, 則需要執(zhí)行以下步驟: 1. 從 Hibernate 的 Web 站點下載 Hibernate 框架的最新發(fā)行版 2. 把必需的 Hibernate 庫( JAR 文件)復制到應(yīng)用程序的 CLASSPATH。這意味著我們把應(yīng)用程序的數(shù)據(jù)訪問層位于 Hibernate 之上,完全是從底層數(shù)據(jù)模型中抽象出來的。 ? 概述 Hibernate 是一個純 Java 的對象關(guān)系映射和持久性框架,它允許 您用 XML 配置文件把普通 Java 對象映射到關(guān)系數(shù)據(jù)庫表。 Hibernate 提供了許多高級特性,從內(nèi)省到多態(tài)和繼承映射。這樣的結(jié)果是: Hibernate 可以為我們正在使用的特定數(shù)據(jù)庫定制生成適合這個數(shù)據(jù)庫的查詢語句。 Hibernate 簡介 ? 什么是 Hibernate Hibernate 是一個對象關(guān)系映射和持久性框架,它屬于第二種 ORM 工具類型。第二種屬于ORM工具類型,這類工具的 SQL 語句由 ORM架構(gòu)自動生成 [10]。 實踐中的數(shù)據(jù)訪問技術(shù) 當前的 ORM架構(gòu)有兩種基礎(chǔ)類型。此外,同時連接到數(shù)據(jù)庫的連接數(shù)通常是受限的。每一個數(shù)據(jù)庫連接都是很緊缺的資源,并且建立到數(shù)據(jù)庫的連接需要不小的系統(tǒng)開銷。 在 JDBC 的發(fā)展歷程中 ,有一件事從來沒有改變過 :使用 JDBC API 是一件煩人的事,直接使用 JDBC API來執(zhí)行哪怕一條簡單的更新語句,也需要寫上半頁代碼才能保證資源管理和異常處理的正確性; JDBC 框架非常復雜和難于測試;而這些復雜性為開發(fā)制造了很多困難。異常處理就屬于此類代碼。 更讓大多數(shù)開發(fā)人員頭疼的是,編寫 JDBC 代碼并不是一項容易的工作 ——存在大量的重復性的工作。調(diào)試這樣的異常需要一定的時間來檢查 SQL狀態(tài)值和錯誤代碼。 相應(yīng)于任何一種錯誤,都只是拋出 SQLException 異常 無論它來源于 JDBC驅(qū)動程序還是來源于數(shù)據(jù)庫,這使得程序員很難理解到底是哪里實際出現(xiàn)了錯誤。 ? JDBC 中使用了極不明確性的 SQLException 異常。 可惜的是, JDBC 是一個低級的 API,直接使用它會相當麻煩 [3]: ? 開發(fā)者需要處理大量復雜的任務(wù)和基礎(chǔ)結(jié)構(gòu), 例如必須用大量容易出錯的try/catch/finally/try/catch 代碼塊來確保資源和異常得到很好的處理。 JDBC 能夠以很高的性能執(zhí)行基于數(shù)據(jù)集的操作,這種時候 SQL 非常強大而且易用。 JDBC 底層的 結(jié)構(gòu)的核心設(shè)計是為不同的數(shù)據(jù)庫提供不同的驅(qū)動程序;這些驅(qū)動程序運行 JAVA代碼訪問這個數(shù)據(jù)庫。 實踐中的數(shù)據(jù)訪問技術(shù) 而以通過使用 Spring,我們僅僅需要編寫少量的代碼就可以充分發(fā)揮與手工編寫的 SQL等同的威力。在本章節(jié)中,主要展示 Spring 簡化 JDBC編寫的數(shù)據(jù)訪問代碼。 即使選擇了最快和最可靠的數(shù)據(jù)庫,我們也有可能因為低劣的數(shù)據(jù)庫訪問層設(shè)計和實現(xiàn)而失去數(shù)據(jù)庫提供的速度和靈活性優(yōu)勢。除了命令行方式傳入的簡單數(shù)據(jù),絕大部分應(yīng)用程序都需要通過某種數(shù)據(jù)存儲方式對數(shù)據(jù)持久化 [10]。如更新或刪除數(shù)據(jù)時,首先在此方法中調(diào)用持久層中提供的方法來驗證待操作的數(shù)據(jù),是否存在、是否超時或者允許更新等。 ***Action(Action 用于連接 Form 與 BLO 的橋梁 ,起控制作用 ) ? 一般繼承,根據(jù)需要可重載 prepareExecute(),execute(),validate()及postExecute()方法 ? 如果是實現(xiàn)下載 CSV 文件和 PDF 文件的功能 ,則應(yīng)該繼承ShnuBaseCsvDownloadAction 和 ShnuBasePdfDownloadAction 在 ***Action 類中,提供下面四個方法,進行整合驗證,流程控制與資源釋放等操作。在此方法中,首先調(diào)用父類 Form(即 ***AbsForm)中的 validate()方法來完成基本驗證,如果基本驗證通過,再進行邏輯 驗證。有效地緩減了在基于 Struts 框架的應(yīng)用程序中大量重復的驗證代碼的狀況。用戶在編碼時,可依賴代碼生成工具,借助詳細設(shè)計書中提供的模型來完成基本驗證。下面將對本方案中,改寫后的表單驗證與標準 Struts 分工不同點,做出說明。 ActionForm 主要用于與頁面上的一些控件進行交互 (包括頁面間以 post 方式傳值及驗證用戶輸入值的合法性 )。通過 strutsconfig 來管理 ActionForm 與 Action 間的對應(yīng) 關(guān)系。對一個小的應(yīng)用程序,這也許就夠了,但它常常導致相似動作的重復、無 法簡單地測試業(yè)務(wù)邏輯,并且阻止了在其它環(huán)境中重用相同的業(yè)務(wù)邏輯。這種忽視可能帶來高昂的代價,因為 Web控制邏輯和業(yè)務(wù)邏輯之間缺乏分離會同時對幾個架構(gòu)層造成損害,并且有可能造成所謂的“只有 Web的應(yīng)用程序”:即,沒有可重用業(yè)務(wù)層的 Web應(yīng)用。 ? 視圖( View)對象,顯示由控制器提供的模型對象。這個模式將 Web 層分成三類對象 ? 控制器( Controller)對象,接收用戶輸入的信息,并調(diào)用業(yè)務(wù)邏輯去創(chuàng)建和更新模型對象。不包含業(yè)務(wù)邏輯。 ? Web層應(yīng)該盡可能地薄,也就是說,除了啟動用戶動作的業(yè)務(wù)處理以及顯示結(jié)果之外,為應(yīng)該再有其他的 Java 代碼。 Struts 框架的改進 Web 層設(shè)計目標 在一個分層的 J2EE應(yīng)用程序中, Web層結(jié)構(gòu)應(yīng)該像中間層一樣有著可維護性和可重用性。當一個站點日趨復雜時,維護各種 JSP頁面之間的關(guān)系,維護后臺業(yè)務(wù)邏輯,維護表單( forms)以及驗證( validations)變的越來越困難。例如,在整個應(yīng)用程序中驗 證代碼常常會大量重復,因為許多驗證需要相同的驗證邏輯。 但是它遠遠不夠完美。如果驗證成功,則處理過程會繼續(xù)進行。 它的一個主要好處是它提供了對接收到的表單數(shù)據(jù)進行驗證的內(nèi)置界面。下面的表格描述了前面提到的請求驅(qū)動的 Web MVC 框架的對象與 Struts 中對象之間的關(guān)系。 目前存在的問題 Struts 目前已經(jīng)達到一個穩(wěn)定的狀態(tài),并足以支持產(chǎn)品級應(yīng)用 。 Struts標記庫提供了一套 JSP自定義標記,通常 JSP 開發(fā)者和頁面設(shè)計人員都可以理解。對 JSP 開發(fā)的一個傳統(tǒng)挑戰(zhàn)是,程序員有一個趨勢 —— 在他們的頁面中頻繁使用 Java Scriptlet[2]。 ( 7) ActionForward 對象指向的 JSP 組件生成動態(tài)網(wǎng)頁,返回給客戶。如果相應(yīng)的 Action 實例不存在,就先創(chuàng)建這個實例,然后調(diào)用其 execute()方法。在這種情況下,不會再創(chuàng)建 Action對象并調(diào)用 Action 的 execute 方法。如果返回一個或多個 ActionError 的 ActionErrors 對象,則表示表單驗 證失敗。如果需要驗證,就調(diào)用ActionForm 的 validate()方法。如果實例不存在,則創(chuàng)建一個ActionForm 對象,并把客戶提交的表單數(shù)據(jù)保存到 ActionForm 對象中。如果實例不存在,則創(chuàng)建一個ActionMapping 對象,它包含了把請求轉(zhuǎn)發(fā)給哪個 Action 的信息。 Struts 框架響應(yīng)客戶請求的工作流程 Struts 框架對應(yīng)客戶請求的工作流程如下。在 Web應(yīng)用啟動時會加載并初始化控制器 ActionServlet,而 ActionServlet 從 取配置信息,把它們存放到 ActionMapping 對象中。重新設(shè)定 HTML 表單。而 Controller 組件可以對 ActionForm Bean 中的數(shù)據(jù)進行修改。如圖 所示 Struts 框架利用 ActionForm Bean 來進行 View 組件和 Controller 組件之間表單數(shù)據(jù)的傳遞。下面分別簡單介紹 Struts 的 ActionForm Bean, Struts 的初始化流程和 Struts 相應(yīng)的客戶請求的工作流程。它是在 JSP Model2 的基礎(chǔ)上實現(xiàn)的一個 MVC 框架,其結(jié)構(gòu)如圖 所示。View 顯示數(shù)據(jù),而不去大量的業(yè)務(wù)邏輯打交道。 Struts 的 ModelViewController 架構(gòu)大大簡化了 Web應(yīng)用的構(gòu)建,因為它提供了一個模型,你可以向其中加入組件。 4) 標準的 Web 存檔( .war 文件)格式用來部署。 2) 某些標準的配置文件( 以及其它的)。 Java Servle 規(guī)范是更大的J2EE 規(guī)范的一部分。前提是客戶端程序是一個游覽器。只須再次來到達個站點,他將看到一個應(yīng)用的最新版本。升級基于 Web的應(yīng)用比安裝更簡單。如果是一個由 Visual Basic 或者 PowerBuilder 編寫的 Client/Server 或者其它 Win32 客戶應(yīng)用,安裝和升級應(yīng)用程序時需要把軟件安裝到客戶機的桌面上。 這歸功于此方法具有在非常有說服力的經(jīng)濟成效。從大概 1999 年底開始,情況發(fā)生了改變。 使用游覽器作為客戶端軟件來構(gòu)建應(yīng)用,是 1995 年以來 Inter 技術(shù)最大的轉(zhuǎn)變。這種說法 有幾個含義。而且還有另外一個很好的原因:作為 Apache Jakarta 項目的旗艦框架,它隨之帶來了可觀和巨大的用戶基礎(chǔ)。它無可辯駁地是所有框架中最好的并且使用最廣泛的。框架通過為應(yīng)用開發(fā)提供預(yù)先準備好 的起步器,來幫助開發(fā)者更快地建立應(yīng)用。自由、開放源碼的 JSP/Servlet 容器(例如 Apache Jakarta 項目中的 Tomcat)的存在更急劇促進 JSP的應(yīng)用。 第三章 Web 層 隨著 J2EE 平臺的成長和傳播, J2EE 技術(shù)中成長最迅速的部分正是JavaServer Pages(JSP)。相對 Hibernate 等 “全自動” ORM機制而言, iBATIS 以 SQ
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1