基于Web的信息系統畢業論文.doc_第1頁
基于Web的信息系統畢業論文.doc_第2頁
基于Web的信息系統畢業論文.doc_第3頁
基于Web的信息系統畢業論文.doc_第4頁
基于Web的信息系統畢業論文.doc_第5頁
已閱讀5頁,還剩38頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1 基于基于 Web 的信息系統畢業論文的信息系統畢業論文 目目 錄錄 目 錄 1 摘 要 1 前 言 3 第一章 緒論 4 1 1 研究背景 4 1 2 設計目標 4 1 3 本文結構 5 第二章 系統開發環境與技術 6 2 1 系統開發環境 6 2 1 1 MyEclipse 插件介紹 6 2 1 2 Tomcat 服務器介紹 6 2 2 系統開發技術 7 2 2 1 JSP 與 Servlet 技術 7 2 2 2 JavaScript 簡介 10 2 2 3 MVC 模式 11 2 2 4 Struts 框架 11 2 2 5 Spring 框架 13 2 2 6 Hibernate 框架 15 第三章 系統需求分析與前臺設計 17 3 1 需求分析 17 3 1 1 系統前臺簡要設計概述 17 3 1 2 系統用例圖 18 3 2 系統設計 18 3 2 1 系統層次劃分 18 3 2 2 數據庫設計 19 3 2 3 成本管理模塊時序圖 22 第四章 系統詳細設計與功能實現 27 4 1 系統項目的文件夾結構 27 4 2 成本管理模塊的具體實現 28 2 4 2 1 查詢成本信息列表功能的實現 28 4 2 2 添加成本信息功能的實現 33 4 2 3 修改成本信息功能的實現 36 4 2 4 刪除成本信息功能的實現 39 4 2 5 查看成本明細信息功能的實現 41 第五章 總結與展望 43 5 1 課題總結 43 5 2 進一步開發的展望 43 參考文獻 44 致 謝 45 第一章第一章 緒論緒論 1 1 研究背景研究背景 當今時代信息技術飛速發展 人們已經處于數字化的生存空間之中 Internet 構造了 無限的信息資源 它的普遍使用已經從根本上改變了人們的生活方式和工作方式 也改 變了企業的經營方式和服務方式 傳統的人為管理模式已經遠遠無法滿足現在的企業 那么企業對于企業管理系統的 需求是必然的 通過管理系統 能夠大大提高企業的各個方面效率 同時方便了企業與 職工之間的交流 便于滿足將來的業務需求 網絡技術的迅猛發展使得基于 Web 的各類信息系統成為目前信息系統中最為流行的 展現形式之一 基于 Web 的信息系統具有如下一些特點 1 有利于信息的及時更新和發布 2 便于操作和管理 3 擁有良好的用戶界面和接口 4 靈活性和可擴展性 5 系統功能的通用性 正是在這樣的社會大背景下 我們開始進行 服飾生產企業生產狀況聯絡表 成本 管理 的課題研究 其目的在于通過網站的形式實現基于 Web 的信息系統的上述優點和特 點 以展現該類信息系統在全球信息網 Internet 網中快速 便捷 準確地發布信息 提供資源共享的強大功能和作用 成本管理可以幫助企業實現對成本更好的控制 透明的各項成本支出 長期積累下 3 來的數據可以幫助企業對成本進行分析 以達到節約成本的目的 系統中的成本信息與 負責人相關聯 以達到可追溯的目的 使得企業對于成本管理做到可監控 1 2 設計目標設計目標 開發設計本系統的任務是管理該公司的成本信息 通過該系統能夠讓用戶對成本信 息查詢 新增 修改和刪除 開發系統的目標是對成本信息及其明細信息進行管理 滿足的要求具體可包括如下 幾個方面 1 網頁風格符合企業員工的特點 簡單實用 2 能夠實現對于成本信息的符合實際企業需求的管理 3 網站運行安全穩定 1 3 本文結構本文結構 本文的章節安排如下 第一章緒論部分 說明本文的研究背景和設計目標 為接下來的系統后臺的分析與 設計做基礎準備 第二章背景技術 簡單介紹系統實現所用到的平臺與技術 如MyEclipse Tomcat 服 務器 JSP與與 Servlet原理 JavaScript SSH Struts Spring Hibernate 框架等 第三章系統分析與設計 對企業的門戶網站的后臺進行需求分析 根據需求分析設 計相應的功能與表結構 第四章系統實現 給出系統后臺的具體實現 包括實現效果和核心代碼說明 第五章總結與展望 對本文所做的工作進行總結 并針對目前工作中的不足對未來 工作的展望 4 第二章第二章 系統開發環境與技術系統開發環境與技術 2 1 系統開發環境系統開發環境 企業訂單管理系統以 Eclipse 為開發平臺 使用 MyEclipse 作為 Eclipse 的插件 并由 Tomcat 6 0 充當 Web 服務器來開發實現的 2 1 1 MyEclipse 插件介紹插件介紹 MyEclipse 是一個商業軟件 商業插件 基于 Java 和 Eclipse 的可擴展開發平臺 比 如 MS Visual Studio 開發平臺中的 VC VB 等 Borland 公司的 Delphi Borland C Builder 就其本身而言 它只是一個框架和一組服務 用于通 過插件組件構建開發環境 雖然大多數用戶很樂于將 MyEclipse 當做 Java IDE Integrated Development Environment 來使用 但 MyEclipse 的目標并不僅限于此 MyEclipse 還包括插件開發環 境 Plug in Development Environment PDE 當然 這個功能的實現主要是 Eclipse 這個 組件主要針對希望擴展 Eclipse 核心的軟件開發人員 因為它允許他們構建與 Eclipse 環境 無縫集成的工具 由于 Eclipse 中的每樣東西都是插件 對于給 Eclipse 提供插件 以及給 用戶提供一致和統一的集成開發環境而言 所有工具開發人員都具有同等的發揮場所 這種平等和一致性并不僅限于 Java 開發工具 盡管 Eclipse 是使用 Java 語言開發的 但它的用途并不限于 Java 語言 例如 支持諸如 C C COBOL 和 Eiffel 及 Perl 等編程 語言的插件 MyEclipse 是一款功能強大的 J2EE 集成開發環境 支持代碼編寫 配置 測試及除 錯 程序功能包括 HTML 智能編輯器 Struts JSF CSS JavaScript SQL Hibernate Spring 等 帶有自動完成與語法高亮顯 示功能的 J2EE 編輯器 在 Eclipse 中安裝這個插件可以大大提高開發 J2EE 的效率 2 1 2 Tomcat 服務器介紹服務器介紹 Tomcat 是一個免費開源的 Servlet 容器 它是 Apache 軟件基金會 Apache Software Foundation Jakarta 項目中的一個核心項目 由 Apache Sun 和其他一些公司及個人共 同開發而成 由于有了 Sun 的參與和支持 最新的 Servlet 和 JSP 規范總是能在 Tomcat 中得到體現 Tomcat 7 支持最新的 Servlet 3 0 和 JSP 2 2 規范 Tomcat 不僅是一個 Servlet 容器 它也具有傳統的 Web 服務器的功能 如處理 HTML 頁面 簡單的域名管理 5 配置 JNDI 等 因為 Tomcat 技術先進 性能穩定 而且免費 因而深受 Java 愛好者的 喜愛并得到了部分軟件開發商的認可 成為目前比較流行的 Web 應用服務器 Tomcat 很受廣大程序員的喜歡 因為它運行時占用的系統資源小 擴展性好 支持 負載平衡與郵件服務等開發應用系統常用的功能 而且它還在不斷的改進和完善中 任 何一個感興趣的程序員都可以更改它或在其中加入新的功能 Tomcat 是一個小型的輕量級應用服務器 在中小型系統和并發訪問用戶不是很多的 場合下被普遍使用 是開發和調試 JSP 程序的首選 對于一個初學者來說 可以這樣認 為 當在一臺機器上配置好 Apache 服務器 可利用它響應對 HTML 頁面的訪問請求 實際上 Tomcat 部分是 Apache 服務器的擴展 但它是獨立運行的 所以當你運行 Tomcat 時 它實際上作為一個與 Apache 獨立的進程單獨運行的 這里的訣竅是 當配置正確時 Apache 為 HTML 頁面服務 而 Tomcat 實際上運行 JSP 頁面和 Servlet 另外 Tomcat 和 IIS Apache 等 Web 服務器一樣 具有處理 HTML 頁面的功能 另外它還是一個 Servlet 和 JSP 容器 獨立的 Servlet 容器是 Tomcat 的默認 模式 不過 Tomcat 處理靜態 HTML 的能力不如 Apache 服務器 2 2 系統開發系統開發技術技術 服飾企業生產狀況聯絡表系統的開發技術是基于 J2EE 架構的 SSH 組合技術 開發平 臺是 Eclipse 以 MyEclipse 作為插件 Tomcat 6 0 作為服務器 JDK1 6 0 13 作為工具包 2 2 1 JSP 與與 Servlet 技術技術 JSP 技術是建立在 Servlet 技術之上的 先有 Servlet 技術 后推出的 JSP 技術 JSP 最終要編譯為 Servlet 運行 進行 Web 應用開發的時候 結合 Servlet 和 JSP 能夠使開發 的分工和層次更加清晰 JSP 注重于頁面的呈現 處理邏輯應該盡量減少 這樣方便網頁 設計人員在美工上多下功夫 Servlet 程序則側重于對邏輯的控制 根據需要對 JSP 頁面 進行導航 Servlet 是一種獨立于平臺和協議的服務器端的 Java 應用程序 可以生成動態的 Web 頁面 Servlet 位于 Web 服務器內部 由 Web 服務器進行加載 該 Web 服務器必須包含 支持 Servlet 的 Java 虛擬機 JSP Java Server Pages 是一種動態網頁技術標準 是基于Java Servlet和整個Java體系 的Web開發技術 它在動態網頁的建設中有著強大而特別的功能 它的以下優點使很多人 認為它將是最有發展前途的動態網頁技術 3 6 1 將內容的生成和顯示進行分離 用 JSP 技術 Web 頁面開發人員可以使用 HTML 或者 XML 標識來設計和格式化最 終頁面 并使用 JSP 標識或者小腳本來生成頁面上的動態內容 Web 管理人員和頁面設 計者 能夠編輯和使用 JSP 頁面 而不影響內容的生成 2 采用標識 Web 頁面開發人員不會都是熟悉腳本語言的編程人員 JSP 技術封裝了許多功能 這 些功能是在易用的 與 JSP 相關的 XML 標識中進行動態內容生成所需要的 JSP的執行流程是這樣的 第一個用戶請求JSP文件的時候 JSP容器 如Tomcat 把 JSP文件轉換成Java文件 Servlet類文件 然后編譯成class文件 常駐內存 當有客戶請 求的時候 直接開一個線程 無須重新編譯 直接執行第一次已經編譯好的class文件 速 度比每次都要重新編譯JSP文件要快的多 2 2 1 1 JSP 的工作原理的工作原理 JSP 頁面以擴展名為 JSP 的純文本文件的形式存在服務器上 當服務器接收到客戶端 對某個 JSP 頁面的請求時 如果這是對該頁面創建或修改后的第一次請求時 那么 JSP 引擎就把該 JSP 頁面內容轉換成一個純 Java 語言的 Servlet 源碼 然后將其編譯成 Servlet 字節代碼 最后將 Servlet 的執行結果返回至瀏覽器 JSP 頁面被編譯成 Servlet 之后 其 執行代碼以獨立線程的形式一直存在服務器的內存中 以后對該 JSP 頁面提出請求時 不需要重新編譯 直到該頁面被修改或 WEB 應用程序重新啟動 其工作原理如圖 2 2 所 示 Windows HTTP JSP JDBC HTML Web 圖 2 2 JSP 的工作原理 7 2 2 1 2 JSP 技術語法技術語法 1 常用 JSP 命令 1 page 頁面指令 主要用來指定當前 JSP 頁面的屬性 2 允許包含其他動態和靜態文件 3 將一個 JSP 文件傳給另一個 JSP 文件 4 可以通過 Java 插件在瀏覽器中運行 Java Applet 5 標記是用來訪問 JavaBean 的動作標記 當 JSP 頁面使用 標記時 表示將引用一個 JavaBean 的實例 JavaBean 標記的語法格式如下 2 JSP 內置對象 6 為了方便 Web 頁面的開發 JSP 提供了一些內置的對象 這些內置對象可以不經顯 式聲明而在程序中直接使用 JSP 的幾個主要內置對象有 Request Response Session Out 通過這些內置對象 可以實現頁面的一些基本的請求 輸入 輸出功能 且可實現數據在頁面之間的交互 本系統主要用到的有以下幾個對象 4 1 Request 對象 主要功能是接受客戶端以 HTTP 方式傳送的數據 使服務器端的應 用程序可以根據這些數據做進一步的信息處理 實現與客戶進行交互的功能 一般常用 的是它的 getParameter String name 這個方法來獲取傳遞的參數 其接口為 javax servlet http HttpServletRequest 2 Response 對象 主要功能是用來對客戶的請求做出響應 與 Request 對象對應的就 是 Response 對象 Response 對象用于將服務器的數據發送到客戶端 輸出的數據可以是 各種數據類型 甚至是文件 一般經常用到的是它的 sendRedirect URL url 這個方法來重 定向當前用戶訪問的 url Response 對象的接口為 javax servlet http HttpServletResponse 3 Session 對象 主要功能用來保存每個用戶在會話期間的數據信息 這樣就方便了 會話處理工作 當用戶登錄網站時 系統將為其生成一個獨一無二的 session 對象 用以 記錄該用戶的個人信息 一旦該用戶退出網站 那么這個 session 對象將會注銷 Session 對象可以綁定若干個人信息或 Java 對象 Session 對象的接口為 javax servlet http HttpServletSession 4 Out 對象 主要功能是用于動態地向客戶端輸出數據信息 其主要作用是在 Web 瀏 覽器內輸出信息 這個對象使用比較頻繁 在數據的輸出方面經常用到它的 8 println parameter 這個方法 同時 它也是進行糾錯處理時一個比較有效的輸出方法 2 2 2 JavaScript 簡介簡介 JavaScript 是適應動態網頁制作的需要而誕生的一種新的編程語言 如今越來越廣泛 地使用于 Internet 網頁制作上 JavaScript 是由 Netscape 公司開發的一種腳本語言 scripting language 或者稱為描述語言 在 HTML 基礎上 使用 JavaScript 可以開發交 互式 Web 網頁 JavaScript 的出現使得網頁和用戶之間實現了一種實時性的 動態的 交 互性的關系 使網頁包含更多活躍的元素和更加精彩的內容 JavaScript 短小精悍 又是 在客戶機上執行的 大大提高了網頁的瀏覽速度和交互能力 同時它又是專門為制作 Web 網頁而量身定做的一種簡單的編程語言 JavaScript 加入網頁有兩種辦法加入網頁有兩種辦法 7 1 直接加入 HTML 文檔 這是最常用的方法 大部分含有 JavaScript 的網頁都采用這種方法 如 用來告訴瀏覽器這是用 JavaScript 編寫的程序 需要調 動相應的解釋程序進行解釋 HTML 的注釋標簽 用來去掉瀏覽器所不能識別的 JavaScript 源代碼的 這 對不支持 Javascript 語言的瀏覽器來說是很有用的 Javascript 結束 雙斜杠表示 JavaScript 的注釋部分 即從 開始到行尾的字符都被 忽略 的位置并不是固定的 可以包含在 或中 的任何地方 2 引用方式 如果已經存在一個 JavaScript 源文件 以 js 為擴展名 則可以采用這 種引用的方式 以提高程序代碼的利用率 其基本格式如下 其中的 url 就是程序文件的地址 同樣的 這樣的語句可以放在 HTML 文檔頭部或主 體的任何部分 如果要實現 直接插入方式 中所舉例子的效果 可以首先創建一個 JavaScript 源代碼文件 Script js 其內容如下 document writeln 這是 Javascript 采用直 接插入的方法 在網頁中可以這樣調用程序 9 2 2 3 MVC 模式模式 MVC 即 Model View Controller M 代表業務邏輯 V 代表視圖 C 代表控制層 通 過使用 MVC 模式就把軟件層次分為三個層 模型層 視圖層 控制層 1 模型 Model 層 也就是軟件業務的實現部分 一個軟件有什么功能 它如何實現 功能 這些功能之間的聯系都是在模型層進行處理的 可以這樣說 模型層是一個軟件 的核心 軟件功能的好壞 軟件功能是否完善 業務層起到了決定性的作用 視圖 View 層 就是用戶能看到的并與之交互的界面 在 J2EE 技術中 常用的表 示層技術主要由 JSP JSF Freemarker 等組成 視圖向用戶顯示相關的數據 并能接受 用戶的輸入數據 但是它不能進行任何實際的業務處理 視圖還可以接受模型發出來的 數據更新事件 從而對用戶界面進行同步更新 控制 Controller 層 Struts 中的控制層和 Servlet 的功能功能一模一樣 就是調用業 務層 然后進行視圖的切換 控制層幾乎不做任何與業務有關的事情 比如登錄驗證這 些 所以在軟件的分層結構設計中 控制層的代碼量幾乎是最少的 但它的作用也是非 常重要的 通過將模型 視圖與控制層的分離 各個層之間的聯系非常少 但這樣做的好處是 控制層可以隨意的切換到自己想要展示的頁面 然后控制層調用業務邏輯層和持久化保 存數據層 來實現軟件的功能 再轉回到控制層 最后將最終的結果顯示到視圖層 這 實際上是一種模型的變化 傳播機制 模型 視圖 控制層三者之間的關系和各自的 主要功能如圖 2 1 所示 圖 2 1 MVC 組件關系和功能 模 型 封裝應用程序狀態 響應狀態查詢 應用程序功能 通知視圖改變 10 2 2 4 Struts 框架框架 Struts 已經提供了一個非常好的 MVC 框架 利用 Struts 開發 MVC 系統時可以大大 加快開發速度 在開發時可以采用的開發流程如下 1 收集和定義應用需求 2 基于數據采集和顯示的原則定義和開發用戶界面的需求 3 為每一個用戶界面 JSP 文件定義訪問路徑 4 定義 ActionMapping 建立應用業務邏輯之間的聯系 5 開發滿足用戶界面需求的所有支持對象 6 基于每一個用戶界面需求提供的數據屬性來創建對應的 ActionForm 對象 7 開發被 ActionMapping 調用的 Action 對象 8 開發應用業務邏輯對象 Bean EJB 等 9 對應 ActionMapping 設計的流程創建 JSP 頁面 10 建立合適的配置文件 struts config xml web xml 11 開發 測試 部署 利用 Sruts 開發 MVC 流程 如圖 2 2 所示 Browsers Struts ActionServlet struts config xml Struts Action Struts ActionForm Business Logic JSP HTML Form using Struts Custom Tags Database View Model Controller 圖 2 2 Struts 框架 MVC 流程圖 在使用 Struts 框架時 對應各個部分的具體開發工作主要包括一下部分 Model 部分 采用 JavaBean 或 EJB 組件或 Spring 的 Bean 設計和實現系統的業務邏 輯 根據不同的請求從 Action 派生具體 Action 處理對象 完成 做什么 的任務來調用由 Bean 構成的業務組件 創建由 ActionForm 的派生類實現對客戶端表單數據的封裝及簡單 的校驗 Controller 部分 Struts 為我們提供了核心控制部分的實現 只需要配置 ActionMapping 對象即可完成 URI 地址的映射及匹配用戶界面表單和 ActionForm 類的對 應關系 11 View 部分 為了使用 Model 中的 ActionForm 對象 必須用 Struts 提供的自定義標記 創建 HTML 表單 利用 Struts 提供的自定義標記庫編寫用戶界面 把應用邏輯和顯示邏 輯分離 Struts 框架通過這些自定義標記建立了 View 和 Model 之間的聯系 Struts 的自定 義標記還提供了很多定制頁面的功能 同時 需要編輯兩個配置文件 web xml 和 struts config xml 通過它們配置 Struts 系 統中的各個模塊之間的交互 圖 2 2 描述了一個 Struts 應用程序的簡要執行流程 1 客戶端瀏覽器發出請求 2 服務器端的 Struts 中心類 ActionServlet 找到 struts config xml 文件 并放入到內存 將文件中的內容作為請求路徑映射 3 ActionServlet 類在 struts config xml 文件中找到相關的請求路徑映射后填充 ActionForm 類 將前臺傳進來的表單域打包成 Bean 4 然后轉到 Action 類進行業務邏輯功能的實現 比如增 刪 改 查數據庫中的數 據 5 再通過 struts config xml 文件的映射 找到功能邏輯處理結束后顯示給客戶端用戶 看到的頁面 轉發功能通過 ActionForward 對象實現 由圖 2 2 Struts 框架 MVC 流程圖 結構來看 Struts 框架可以將軟件的功能進行分層 化 這樣可以將精通不同技術的人員工作模塊化 分工化 比如精通 UI 用戶界面設計的 可以只管 View 視圖層 而精通 Java 程序設計的程序員可以開發 Model 層的代碼 2 2 5 Spring 框架框架 Spring 框架是一個開放源代碼的輕量級 Java 框架 主要作用是為了解決企業應用程 序維護的復雜性而創建的 Spring 框架的解決辦法就是用分層架構 分層架構允許程序員 選擇使用哪一個組件 同時為 J2EE 應用程序開發提供集成的容器 Spring 框架就是實現了 AOP 功能的 IOC 容器 在 IOC 容器的基礎上加入 AOP 不僅 可以做到松耦合開發 還具有面向切面編程的功能 Spring2 0 七大模塊的架構 如圖 2 3 所示 Spring AOP Source level metadata AOP infrastructure Spring Core Supporting utlities Bean container Spring ORM Hibernate support iBats support JDO support Spring DAO Transaction infrastructure JDBC support DAO support Spring Web WebApplicationContext Multipart resolver Web utlities Spring Context Application context UI support Validation JNDI EJB support and remodeling Mail SpringWeb MVC Web MVC Framework Web Views JSP Velocity PDF Export 圖 2 3 Spring 架構 組成 Spring 框架的每個模塊 或組件 都可以單獨存在 或者與其他一個或多個模 塊聯合實現 每個模塊的功能如下 12 Spring Core 核心容器提供 Spring 框架的基本功能 核心容器的主要組件是 BeanFactory 它是工廠模式的實現 BeanFactory 使用控制反轉 IOC 模式將應用程 序的配置和依賴性規范與實際的應用程序代碼分開 Spring Context Spring Context 是一個配置文件 向 Spring 框架提供上下文信息 Spring Context 包括企業服務 例如 JNDI EJB 電子郵件 國際化 校驗和調度功能 Spring AOP 通過配置管理特性 Spring AOP 模塊直接將面向方面的編程功能集成 到了 Spring 框架中 所以 可以很容易地使 Spring 框架管理的任何對象支持 AOP Spring AOP 模塊為基于 Spring 的應用程序中的對象提供了事務管理服務 通過 使用 Spring AOP 不用依賴 EJB 組件 就可以將聲明性事務管理集成到應用程序中 Spring DAO JDBC DAO 抽象層提供了有意義的異常層次結構 可用該結構來管理 異常處理和不同數據庫供應商拋出的錯誤消息 異常層次結構簡化了錯誤處理 并且極 大地降低了需要編寫的異常代碼數量 例如打開和關閉連接 Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結構 Spring ORM Spring 框架插入了若干個 ORM 框架 從而提供了 ORM 的對象關系 工具 其中包括 JDO Hibernate 和 iBatis SQL Map 所有這些都遵從 Spring 的通用事 務和 DAO 異常層次結構 Spring Web 模塊 Web 上下文模塊建立在應用程序上下文模塊之上 為基于 Web 的應用程序提供了上下文 所以 Spring 框架支持與 Jakarta Struts 的集成 Web 模塊還 簡化了處理多部分請求以及將請求參數綁定到域對象的工作 Spring Web MVC MVC 框架是一個全功能的構建 Web 應用程序的 MVC 實現 通過策略接口 MVC 框架變成為高度可配置的 MVC 容納了大量視圖技術 其中包括 JSP Velocity Tiles iText 和 POI Spring 框架的功能可以用在任何 J2EE 服務器中 大多數功能也適用于不受管理的 環境 Spring 的核心要點是 支持不綁定到特定 J2EE 服務的可重用業務和數據訪問對 象 毫無疑問 這樣的對象可以在不同 J2EE 環境 Web 或 EJB 獨立應用程序 測試環境之間重用 控制反轉模式 也稱作依賴性介入 的基本概念是 不創建對象 但是描述創建它 們的方式 在代碼中不直接與對象和服務連接 但在配置文件中描述哪一個組件需要哪 一項服務 容器 在 Spring 框架中是 IOC 容器 負責將這些聯系在一起 在典型的 IOC 場景中 容器創建了所有對象 并設置必要的屬性將它們連接在一起 決定什么時間調用方法 下表列出了 IOC 的一個實現模式 類型 1服務需要實現專門的接口 通過接口 由對象提供這些服務 可以從對象查詢依賴性 例如 需要的附加服務 13 類型 2通過 JavaBean 的屬性 例如 setter 方法 分配依賴性 類型 3依賴性以構造函數的形式提供 不以 JavaBean 屬性的形式公 開 Spring 框架的 IOC 容器采用類型 2 和類型 3 實現 面向方面的編程 即 AOP 是一種編程技術 它允許程序員對橫切關注點或橫切典 型的職責分界線的行為 例如日志和事務管理 進行模塊化 AOP 的核心構造是方面 它將那些影響多個類的行為封裝到可重用的模塊中 AOP 和 IOC 是補充性的技術 它們都運用模塊化方式解決企業應用程序開發中的 復雜問題 在典型的面向對象開發方式中 可能要將日志記錄語句放在所有方法和 Java 類中才能實現日志功能 在 AOP 方式中 可以反過來將日志服務模塊化 并以聲明的 方式將它們應用到需要日志的組件上 當然 優勢就是 Java 類不需要知道日志服務的存 在 也不需要考慮相關的代碼 所以 用 Spring AOP 編寫的應用程序代碼是松散耦合的 AOP 的功能完全集成到了 Spring 事務管理 日志和其他各種特性的上下文中 Spring 設計的核心是 org springframework beans 包 它的設計目標是與 JavaBean 組件一起使用 這個包通常不是由用戶直接使用 而是由服務器將其用作其他多數功能 的底層中介 下一個最高級抽象是 BeanFactory 接口 它是工廠設計模式的實現 允許 通過名稱創建和檢索對象 BeanFactory 也可以管理對象之間的關系 BeanFactory 支持兩個對象模型 1 單態 模型提供了具有特定名稱的對象的共享實例 可以在查詢時對其進行檢索 Singleton 是默認的也是最常用的對象模型 對于無狀態服務對象很理想 2 原型 模型確保每次檢索都會創建單獨的對象 在每個用戶都需要自己的對象時 原型模型最適合 bean 工廠的概念是 Spring 作為 IOC 容器的基礎 IOC 將處理事情的責任從應用 程序代碼轉移到框架 正如我將在下一個示例中演示的那樣 Spring 框架使用 JavaBean 屬性和配置數據來指出必須設置的依賴關系 2 2 6 Hibernate 框架框架 Hibernate 是目前最流行的 ORM 框架 其采用非常優雅的方式將 SQL 操作完全包裝 成對象化的操作 其作者 Gavin King 在持久層設計上極富經驗 采用非常少的代碼實現 了整個框架 同時完全開放源代碼 即使偶爾遇到無法理解的情況 也可以參照源代碼 來理解其在持久層上靈巧而智能的設計 14 目前 Hibernate 在國內的開發人員相當多 Hibernate 的文檔也非常豐富 這些都為學 習 Hibernate 鋪平了道路 因而 Hibernate 的學習相對簡單一些 下面通過對比來了解 Hibernate 和傳統 JDBC 操作數據庫持久層之間的差異 當前的軟件開發語言已經全面轉向面向對象 而數據庫系統仍停留在關系數據庫階 段 面對復雜的企業環境 同時使用面向對象語言和關系數據庫是相當麻煩的 不但中 間的過度難以理解 而且其開發周期也相當長 Hibernate 是一個面向 Java 環境的對象 關系數據庫映射工具 Object Relational Mapping 用來把對象模型表示的對象映射到基于 SQL 的關系模型數據結構中去 Hibernate 的目標是 釋放開發者通常的數據持久化相關的變成任務的 95 對于以 數據為中心的程序而言 往往在數據庫中使用存儲過程來實現商業邏輯 Hibernate 可能 不是最好的解決方案 但對于那些基于 Java 的中間件應用中 設計采用面向對象的業務 模型和商業邏輯時 Hibernate 是最有用的 不管怎樣 Hibernate 能消除那些針對特定數 據庫廠商的 SQL 代碼 并且把結果集由表格式的形式轉換成值對象的形式 Hibernate 不僅管理 Java 類到數據庫表的映射 包括 Java 數據類型到 SQL 數據類型 的映射 還提供數據查詢和獲取數據的方法 可以大幅度地減少在開發時人工使用 SQL 和 JDBC 處理數據的時間 Hibernate 能在眾多的 ORM 框架中脫穎而出 因為 Hibernate 與其他 ORM 框架對比 具有如下優勢 1 開源和免費的 License 方便需要是研究源代碼 改寫源代碼并進行功能定制 2 輕量級封裝 避免引入過多復雜的問題 調試容易 減輕程序員負擔 3 具有可擴展性 API 開放 功能不夠用時 可以自己編碼進行擴展 4 開發者活躍 產品有穩定的發展保障 15 第三章第三章 系統需求分析與前臺設計系統需求分析與前臺設計 3 1 需求分析需求分析 根據軟件開發過程的要求 在技術實現可行性確定的基礎上 我們首先要進行的是 系統流程的分析 需求分析就是描述系統的需求情況 結合用戶的需求 本模塊是用于 服裝企業的成本管理 對成本信息進行添加 刪除 修改以及查詢等一系列的操作 本 系統主要應有如下要求 網頁風格符合企業員工的特點 簡單實用 符合企業實際的成本管理方式 要求完成成本信息相關的所有基本操作 包括添加 刪除 修改以及查詢等操作 要求能夠上傳與成本相關的文件 方便以后的查找管理 3 1 1 系統前臺簡要設計概述系統前臺簡要設計概述 該成本管理系統主要是針對服裝企業的 其成本管理模塊的前臺主要能完成以下功 能 1 在用戶登錄之后 選擇成本管理中的成本明細維護 能夠看到自己權限范圍內的 所有成本信息 2 用戶可以使用多字段 查詢自己需要查詢的成本信息 并可以點擊查看該成本信 息的詳細內容 3 除了查詢功能外 用戶還必須能夠對已有的成本信息進行修改 4 用戶可以添加新的成本信息 5 對于添加錯誤的成本信息 可以進行對其進行刪除操作 但刪除操作可以不單獨 列出一個界面 直接從顯示列表和數據庫中刪除即可 圖 3 1 表示前臺頁面主菜單結構圖 16 圖 3 1 前臺頁面主菜單 3 1 2 系統用例圖系統用例圖 用戶 成成本本管管理理模模塊塊 新增成本明細信息 查詢成本信息列表 刪除成本明細信息 顯示成本明細信息 修改成本明細信息 圖 3 2 成本管理模塊用例圖 3 2 系統設計系統設計 3 2 1 系統層次劃分系統層次劃分 該系統模塊中 模塊系統共分為五層 分別為表現層 控制層 業務邏輯層 數據 訪問層 數據層 如圖 3 2 所示 JSP ActionServlet Hibernate MySQL BO 圖 3 3 網站模塊分層 表現層中 系統主要采用了 JSP 技術 將 Action 傳遞過來的數據封裝在 ActionForm 中 進行一定的處理之后 再反饋給前臺頁面 控制層主要是為了控制協調系統中各模塊的執行流程 在控制層中 Struts 中的 17 ActionServlet 控制系統流程轉向 業務邏輯層 主要采用 Javabean 來實現具體系統的業務邏輯處理 數據訪問層 主要是采用 Hibernate 持久層方案 通過 Hibernate 封裝對數據層的操作 方便于在不同的數據庫系統間移植 Hibernate 也采用了面向對象的思想來操作數據庫 數據層存放系統中的數據 本系統采用 MySQL 數據庫 3 2 2 數據庫設計數據庫設計 數據庫就是存放數據的倉庫 即數據按照一定的規律存放在計算機中 是信息系統 的核心和基礎 是信息系統開發和建設的重要組成部分 把信息系統中大量的數據按一 定的模型組織起來 提供存儲 維護 檢索數據的功能 使信息系統可以方便 及時 準確地從數據庫中獲得所需的信息 數據庫設計是信息資源管理最有效的手段 數據庫 設計就是根據具體的應用環境 構造合理數據庫模式 建立數據庫邏輯結構 有效存儲 數據 滿足用戶實際需求和系統應用處理要求 在動態網站設計中數據庫的重要性不言 而喻 合理地設計數據庫結構可以提高系統運行的效率 如果設計不當 查詢起來就非 常吃力 程序的性能也會受到影響 2 數據庫的設計一般主要包括兩個部分 對網站系統的設計進行需求分析 確定所需要在數據庫中保存的信息 確定每個表的字段屬性等數據庫信息 根據系統設計和業務邏輯分析 與我所做模塊連接比較緊密的數據表有 USER 表 SINGLE MATERIAL BILL 表 SINGLE MATERIAL BILL ITEM 表 STYLE COMPONENT 表 如表 3 1 所示 該表為 USER 表結構 用于保存登錄用戶的信息 表 3 1 USER 表 序號序號列名列名數據類型數據類型長度長度標識標識主鍵主鍵允許空允許空說明說明 1user idbigint20是是否自增長 2COMP IDbigint20是 3emailvarchar255是電子郵箱 4faxvarchar255是傳真 5moblie phonevarchar255是手機 6cnamevarchar255是中文名 7name engvarchar255是 8phonevarchar255是電話 18 9remarkvarchar255是備注 10statusvarchar255是狀態 11user personal idvarchar255是 12user pwdvarchar255是密碼 13employeevarchar255是是否為雇 員 14user namevarchar255是登錄名 15createbybigint20是創建人 ID 16createDatedatetime是創建日期 17expireDatedatetime是到期日期 18effectiveDatedatetime是有效日期 19addressvarchar255是地址 20dept idbigint20是部門 ID 21canEditPlanvarchar1否 如表 3 2 所示 該表為 SINGLE MATERIAL BILL 表結構 用于保存成本明細信息 不包括各成本子項明細信息 表 3 2 SINGLE MATERIAL BILL 表 序號序號列名列名數據類型數據類型長度長度主鍵主鍵允許空允許空說明說明 1single material bill idbigint20是否自增長 2approve by idbigint20是審擬人 1ID 3approve datedatetime是審擬日期 4contact idbigint20是合同 ID 5contact billvarchar255是 6createby idbigint20是創建人 ID 7create datedatetime是創建日期 8due datedatetime是交貨日期 9nation idbigint20是外銷地區 ID 10single material bill novarchar255是編號 11numberdouble是數量 12style idbigint20是款號 13update datedatetime是修改日期 14specification from idbigint20是 15specification to idbigint20是 16amountdouble是總額 17styleNamevarchar500是款式 18imgvarchar100是上傳文件路徑 19specification term1varchar100是規格項 1 20specification term2varchar100是規格項 2 19 21specification term3varchar100是規格項 3 22specification term4varchar100是規格項 4 23approve by id2bigint20是審擬人 2ID 24issimplevarchar255是是否為簡單成 本管理標記 25bar codevarchar255是 26comments shvarchar255是 27componentvarchar255是 28grammevarchar255是 如表 3 3 所示 該表為 SINGLE MATERIAL BILL ITEM 表結構 用于保存各成本 子項明細信息 表 3 3 SINGLE MATERIAL BILL ITEM 表 序序 號號 列名列名數據類型數據類型長度長度小數小數 位位 主主 鍵鍵 允許允許 空空 說明說明 1single material bill item idbigint20是否自增 長 2cloth component idbigint20是 3material idbigint20是材料 ID 4quantity per clothdouble是用料 5materialpricedouble是單價 6materialamountdouble是金額 7materialunitvarchar255是單位 8isamountvarchar255是 9single material bill idbigint20是 10item indexbigint20是 11FK ONEbigint20是 12embroiderdouble153是利潤 率 13stardatedate是時間 14sequencevarchar5是序號 15colorgongjiaodouble153是 16fullindexvarchar40是 17isGongJiaovarchar45是是否 為工 繳 18supplymaterialvarchar45是供貨 19spoilvarchar45是損耗 20widthvarchar45是門幅 20 21remarkvarchar100是備注 如表 3 4 所示 該表為 STYLE COMPONENT 表結構 用于保存各成本子項配置信 息 表 3 4 STYLE COMPONENT 表 序號序號列名列名數據類型數據類型長長 度度 標標 識識 主主 鍵鍵 允許允許 空空 說明說明 1style component idbigint20是是否自增長 2createby idbigint20是創建人 3create datedatetime是創建日期 4descriptionvarchar255是描述 5style component namevarchar255是成本子項名稱 6style component novarchar255是成本子項 NO 7update datedatetime是更新日期 8accessoryvarchar255是 9build invarchar255是 10remark textvarchar4是是否顯示備注 3 2 3 成本管理模塊時序圖成本管理模塊時序圖 3 2 3 1 查詢成本信息列表時序圖查詢成本信息列表時序圖 如圖 3 4 所示 該圖為查詢成本信息列表時序圖 Cost Ma jspUSERSingleMaterialProcessImpl 2 queryMa 3 getSingleMaterialBillsByTerm SingleMaterialBillDAOImplHiber nate 4 findSingleMaterialBillByTerm HibernateTemplate 5 find 6 return Cost List 1 query 圖 3 4 查詢成本信息列表時序圖 具體步驟如下 1 用戶單擊成本維護界面右側的查詢按鈕時 Struts 的 ActionForward 通過 struts 21 config xml 的配置轉發至 Cost Ma jsp 頁面 2 用戶填完新的成本信息后單擊提交按鈕時 Struts 會通過 struts config xml 的配置 調用 CostDetailAction 類的 queryMa 方法 3 CostDetailAction 類的 queryMa 調用 SingleMaterialProcessImpl 類的 getSingleMaterialBillsB

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論