基于JAVA WEB的醫(yī)藥管理系統(tǒng)
《基于JAVA WEB的醫(yī)藥管理系統(tǒng)》由會員分享,可在線閱讀,更多相關(guān)《基于JAVA WEB的醫(yī)藥管理系統(tǒng)(45頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、合肥財經(jīng)職業(yè)學(xué)院畢業(yè)論文(實踐)報告畢業(yè)論文(實踐)報告基于 JAVA WEB 的醫(yī)藥管理系統(tǒng)系系 別別 工程學(xué)院工程學(xué)院 專專 業(yè)業(yè) 計算機網(wǎng)絡(luò)技術(shù)計算機網(wǎng)絡(luò)技術(shù) 年年 級級 2008 學(xué)學(xué) 制制 學(xué)學(xué) 號號 姓姓 名名 二 0 一 0 年 十 月目目 錄錄摘 要 .- 1 -ABSTRACT .- 2 -第 1 章 開發(fā)的目的和意義 .- 3 -第 2 章 需求分析 .- 4 -2.1 系統(tǒng)工作流程分析 .- 4 -2.2 系統(tǒng)實現(xiàn)目標(biāo) .- 4 -第 3 章 總體設(shè)計 .- 5 -3.1 系統(tǒng)設(shè)計的總體思想 .- 5 -3.2 系統(tǒng)設(shè)計的體系和結(jié)構(gòu) .- 5 -3.2.1 系統(tǒng)的設(shè)計體系
2、.- 5 -3.2.2 系統(tǒng)的結(jié)構(gòu)架構(gòu).- 6 -3.3 系統(tǒng)的功能和結(jié)構(gòu)框圖 .- 7 -3.3.1 系統(tǒng)功能模塊.- 7 -3.3.2 系統(tǒng)結(jié)構(gòu)框圖:.- 7 -3.4 開發(fā)平臺和開發(fā)工具 .- 10 -第 4 章 開發(fā)平臺和工具的簡介 .- 10 -4.1 JSP 的簡要說明.- 10 -4.2 MYSQL的簡要說明 .- 10 -4.3 系統(tǒng)配置過程 .- 11 -4.4 配置關(guān)鍵性問題的解決 .- 12 -4.4.1 Servlet 和 JSP 性能調(diào)整.- 12 -第 5 章 系統(tǒng)的詳細設(shè)計 .- 14 -5.1 數(shù)據(jù)庫的實現(xiàn) .- 14 -5.1.1 數(shù)據(jù)庫關(guān)系模式的設(shè)計.- 1
3、4 -5.1.2 數(shù)據(jù)庫的具體實現(xiàn)(表結(jié)構(gòu)).- 14 -5.2 數(shù)據(jù)庫的連接 .- 17 -5.3 功能模塊的詳細設(shè)計 .- 18 -5.3.1 組件包結(jié)構(gòu).- 18 -5.3.2 具體模塊的代碼和相應(yīng)界面.- 19 -第 6 章 經(jīng)驗總結(jié) .- 33 -致 謝 .- 34 -參考文獻 .- 35 -1摘摘 要要醫(yī)藥管理系統(tǒng)是現(xiàn)代化在線醫(yī)藥管理必不可少的基礎(chǔ)設(shè)施與技術(shù)支撐環(huán)境。本系統(tǒng)前臺采用 DreamWeaver 開發(fā),后臺采用 MySql 作為數(shù)據(jù)庫開發(fā)工具,這些技術(shù)目前相對比較成熟,方便產(chǎn)品的維護。本系統(tǒng)可以實現(xiàn)用戶在線注冊、登錄、修改個人信息,用戶進行藥品選購、查看藥品詳細信息、提交
4、訂單信息,管理員對藥品、藥品分類、用戶信息和訂單信息進行在線維護和管理。JSP(Java Server Pages)是由 Sun Micrososystems 公司倡導(dǎo)的、許多公司參與的一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),JSP 技術(shù)是在 Servlet 技術(shù)基礎(chǔ)上發(fā)展起來的,它在飛速發(fā)展過程中,現(xiàn)在已經(jīng)成為 Java 服務(wù)器編程的重要組成部分。雖然它未成型,但是它必然將和 J2EE 一起發(fā)展。 MySql 是一種高效的關(guān)系數(shù)據(jù)庫系統(tǒng),它與 Windows NT/2000 及 Windows 9x 等操作系統(tǒng)緊密集成。這種安排使 MySql 能充分利用操作系統(tǒng)所提供的特性。對于今天復(fù)雜的客戶/服務(wù)
5、器系統(tǒng)來說,MySql 是一個很好的選擇。關(guān)鍵字:醫(yī)藥管理系統(tǒng),Java,MySql2AbstractThe medical administrative system is the modernized online medicine management system, which is the essential infrastructure and technological back-up environment. This systematic front desk adopts DreamWeaver development, and the backstage supporte
6、r adopts MySql as the database developing instrument. These technologies are relative mature at present, facilitate the maintenance of the products. This system can realize users online registration , log-in , revision of personal information , selection and order of medicines, examination of the de
7、tailed information of medicines , submittal of the order information, maintenance and management of medicines, classification of the medicines ,users information and order information online.JSP (Java Server Pages ) is advocated by Sun Micrososystems Company, a kind of dynamic webpage technical stan
8、dard of setting-up together which a lot of companies participate in. JSP technology is developed on Servlet technological foundation. In the course of developing at full speed, it have already become the important component of server programming of Java now. Though it doest shape, it must develop wi
9、th J2EE.MySql is an efficient relation database system. It is close integrated with Windows 2000/NT and Windows 9X OS. MySql can utilize fully the characteristics provided by OS .MySql is a good choice for the complicated Cilent/Server systems nowaday. Key Word: Medical Administrative System, JSP, M
10、ySql 3第第 1 1 章章 開發(fā)的目的和意義開發(fā)的目的和意義開發(fā)軟件的一個目的是針對目前普遍的醫(yī)藥管理系統(tǒng)存在的功能不全,操作復(fù)雜,系統(tǒng)要求高等一系列問題。該管理系統(tǒng)采用電子商務(wù)設(shè)計模式,可靠,方便,并且功能齊全。當(dāng)然對該軟件的態(tài)度是渴望獲得顯著的社會效益。開發(fā)軟件的另一個目的是使其具有強大的實用價值,即它可以滿足中小型醫(yī)藥公司的管理需要。隨著小型醫(yī)藥企業(yè)規(guī)模的擴大,手工工作已經(jīng)不能滿足業(yè)務(wù)上的需求。而該醫(yī)藥管理系統(tǒng)的實施,能集中處理藥品的進銷存業(yè)務(wù),管理好企業(yè)的應(yīng)收應(yīng)付賬目,為企業(yè)的調(diào)整發(fā)展創(chuàng)造一個新的條件。隨著我國市場經(jīng)濟的蓬勃發(fā)展和人們對醫(yī)藥產(chǎn)品需求的迅速增加,醫(yī)藥行業(yè)正處于一個高速
11、發(fā)展的時期。行業(yè)的快速發(fā)展必然導(dǎo)致競爭的加劇,要想在激烈的市場競爭中謀求發(fā)展,客觀上要求企業(yè)必須加強內(nèi)部管理,提高運營效率。另外,由于醫(yī)藥產(chǎn)品種類繁多、銷售模式特殊、業(yè)務(wù)最大,單憑手工記帳已很難適應(yīng)工作的需要。醫(yī)藥作為一個關(guān)系到人們健康的特殊行業(yè),國家對此又有一些不同于其他行業(yè)的管理政策,這些都加大了管理的難度。如何盡快建立和完善現(xiàn)代企業(yè)的信息化管理機制問題,已成為醫(yī)藥企業(yè)發(fā)展的關(guān)鍵所在。而方便、安全、快捷的醫(yī)藥管理軟件系統(tǒng)正是在這樣的背景下發(fā)展起來的。這種管理軟件對硬件的要求很低,一般有一個比較簡單的服務(wù)器與 PC 機組成的網(wǎng)絡(luò)即可,再加上使用比較廉價、性能不錯的軟件,這樣就可以以較低的成本
12、來實現(xiàn)一個足夠使用的功能,而這種模式也正滿足了那種中小型醫(yī)藥公司的要求。但是目前對這種管理軟件的開發(fā)還處于一種比較原始的階段。開發(fā)者往往都是出于資金和時間的顧慮使用比較陳舊的技術(shù),而且各為己見,并且很少涉及網(wǎng)絡(luò)??墒钱?dāng)今是一個網(wǎng)絡(luò)化的社會,單機版的管理軟件多如牛毛,去開發(fā)一個類似的軟件無疑是一種在時間上、精神上和資源上的極大浪費。所以為這種有需要的中小型企業(yè)開發(fā)一種基于網(wǎng)絡(luò)的醫(yī)藥管理軟件是非常有實用價值的。4第第 2 2 章章 需求分析需求分析2.12.1 系統(tǒng)工作流程分析系統(tǒng)工作流程分析傳統(tǒng)的醫(yī)藥管理模式是手工記帳的,但由于目前醫(yī)藥產(chǎn)品種類繁多、銷售模式特殊、業(yè)務(wù)量大,單憑手工記帳已經(jīng)很難適
13、應(yīng)工作的需要。根據(jù)目前醫(yī)藥企業(yè)的實際需求,系統(tǒng)應(yīng)實現(xiàn)的具體功能如下:首先是客戶界面,客戶可以通過網(wǎng)絡(luò)進行注冊認證,然后可以通過身份登錄后進行藥品的分類查找和選購,可以查看藥品的詳細說明,可以查找最新藥品,有購物車功能,可以在線下訂單,有訂單詳細信息;為了能夠同客戶很好地交流,還要有訪客留言、系統(tǒng)公告、問卷調(diào)查等功能。其次是管理界面,管理員登錄后可以對藥品信息進行修改、增加和刪除操作,可以對藥品分類信息進行添加、刪除操作,可以對客戶信息進行相關(guān)維護,還要處理訪客留言、訂單信息以及系統(tǒng)其它相關(guān)操作等等。2.22.2 系統(tǒng)實現(xiàn)目標(biāo)系統(tǒng)實現(xiàn)目標(biāo)(1) 系統(tǒng)界面友好,操作簡單(2) 可隨時掌握藥品的進銷
14、存信息(3) 靈活準(zhǔn)確的收費,提高工作效率(4) 查詢靈活方便,數(shù)據(jù)安全可靠(5) 從用戶需求到售后服務(wù),形成一套嚴(yán)密、科學(xué)、完善的管理體系(6) 功能全面,實用性強5第第 3 3 章章 總體設(shè)計總體設(shè)計3.13.1 系統(tǒng)設(shè)計的總體思想系統(tǒng)設(shè)計的總體思想頁面模塊化:頁面模塊化:把頁面中一些常用的部分集成為模塊,例如頁面的頭和尾部,這樣設(shè)計新的頁面時如果重復(fù)出現(xiàn)的部分只需要拿現(xiàn)成的模塊來組裝就可以了。數(shù)據(jù)存取技術(shù):數(shù)據(jù)存取技術(shù):數(shù)據(jù)庫是管理信息系統(tǒng)的核心內(nèi)容。目前,Web 與數(shù)據(jù)庫接口技術(shù)有很多,其中 JDBC 是 Java 程序連接和存取數(shù)據(jù)庫的應(yīng)用程序接口,由一組用 Java 語言編寫的類與
15、接口組成,是執(zhí)行 SQL 語句的 Java API。在本管理信息系統(tǒng)中,采用了 JSP/Servlet+JDBC 的技術(shù),即客戶端不產(chǎn)生數(shù)據(jù)庫查詢命令,客戶端上的瀏覽器通過 URL 和中間層的 Web 服務(wù)器建立連接。Web 服務(wù)器主要負責(zé)接收本地或遠程瀏覽器的 HTTP 數(shù)據(jù)請求,然后中間層的 Servlet 收到請求后,通過執(zhí)行程序中的 SQL 語句,利用 JDBC 提供的標(biāo)準(zhǔn) API 對數(shù)據(jù)庫進行訪問和相應(yīng)的操作處理。Servlet 再將查詢的數(shù)據(jù)傳給 JSP,最后生成標(biāo)準(zhǔn)的 JSP 頁面將結(jié)果返回給提出請求的瀏覽器。這樣,不僅將客戶端與數(shù)據(jù)庫服務(wù)器端分開,同時提高了數(shù)據(jù)庫的訪問效率。3
16、.23.2 系統(tǒng)設(shè)計的體系和結(jié)構(gòu)系統(tǒng)設(shè)計的體系和結(jié)構(gòu)3.2.13.2.1 系統(tǒng)的設(shè)計體系系統(tǒng)的設(shè)計體系目前,在大多數(shù) Browser/Server 結(jié)構(gòu)的 Web 應(yīng)用中,瀏覽器直接通過HTML 或者 JSP 的形式與用戶交互,響應(yīng)用戶的請求。雖然很直觀,但是大多數(shù)管理信息系統(tǒng)操作的數(shù)據(jù)量都是驚人的,隨著代碼的增多會使 JSP 頁面臃腫不堪,Web 服務(wù)器的負荷過重。因此,在中間層上采用基于模型視圖控制器(MVC.Model-View-Controller)的設(shè)計模式。Model 層用來實現(xiàn)業(yè)務(wù)邏輯,6View 層用來顯示用戶界面,Controller 層主要負責(zé) View 層和 Model
17、層之間的控制關(guān)系。具體實現(xiàn)時,把 Servlet 用作應(yīng)用程序的控制器,把 JSP 文檔作為視圖,JavaBeans 被用來表示模型。在這種設(shè)計模式下,各層次之間的數(shù)據(jù)傳遞如下圖: HTTP 請求 獲取數(shù)據(jù)轉(zhuǎn)交 請求 文檔輸出 更新模型圖 3-1: 各層次之間的數(shù)據(jù)傳遞示意圖3.2.23.2.2 系統(tǒng)的結(jié)構(gòu)架構(gòu)系統(tǒng)的結(jié)構(gòu)架構(gòu)管理信息系統(tǒng)(MIS)是一個由人、計算機等組成的能進行信息的收集、傳遞、存儲、加工和使用的系統(tǒng)。隨著科技的發(fā)展,信息的膨脹,企業(yè)信息化成了企業(yè)在競爭中處于不敗地位的有效手段之一。而 MIS 不僅能夠及時全面地提供信息和數(shù)據(jù),簡化統(tǒng)計工作,對不同的管理層次提出不同的報告之外,
18、還能根據(jù)過去的數(shù)據(jù)預(yù)測未來的情況。因此,采用何種方法開發(fā)出一種兼顧開發(fā)效率和運行效率,同時滿足分布式事件處理功能的管理信息系統(tǒng)就顯得尤為重要。采用三層架構(gòu)設(shè)計,它的工作原理如圖:Controller (Servlet)View(JSP)Model(JavaBeans)DataBase7客戶機 瀏覽器http 服務(wù)器應(yīng)用程序服務(wù)器Servlet 容器數(shù)據(jù)庫JDBCservletjsp圖 3-2: 采用三層架構(gòu)設(shè)計的工作原理示意圖整個管理信息系統(tǒng)采用 Browser/Web/DataBase 的三層體系結(jié)構(gòu)。Web 服務(wù)器接受請求,通過應(yīng)用程序服務(wù)器執(zhí)行一個 Java 服務(wù)器端小程序 Servle
19、t 并返回其輸出,從而實現(xiàn)與客戶機進行信息資源的交互。數(shù)據(jù)庫服務(wù)器用來存儲管理信息系統(tǒng)中所用到的各種數(shù)據(jù),數(shù)據(jù)由數(shù)據(jù)庫管理程序直接錄入。系統(tǒng)的客戶端只需要一個瀏覽器即可。相關(guān)人員通過瀏覽器來查詢、增加、修改、刪除數(shù)據(jù),對信息進行管理。3.33.3 系統(tǒng)的功能和結(jié)構(gòu)框圖系統(tǒng)的功能和結(jié)構(gòu)框圖 3.3.13.3.1 系統(tǒng)功能模塊系統(tǒng)功能模塊客戶端:客戶端:用戶注冊、登錄修改用戶個人信息藥品選購(可以分類查找藥品,或通過關(guān)鍵字查詢相關(guān)說明)查看藥品詳細情況(包括藥名、英文、生產(chǎn)廠家、批號、單價、圖片、詳細介紹等)購物車功能查看、修改、提交用戶訂單信息8新藥介紹客戶留言(包括添加、修改、刪除操作)問卷調(diào)
20、查系統(tǒng)公告管理端:管理端:現(xiàn)有藥品管理:新增、修改、刪除、查看藥品分類管理:新增、刪除用戶信息管理:查看、修改、刪除訂單管理:查看訂單清單,更新訂單付款,出貨狀態(tài),刪除訂單系統(tǒng)維護:維護客戶留言、發(fā)系統(tǒng)公告3.3.23.3.2 系統(tǒng)結(jié)構(gòu)框圖:系統(tǒng)結(jié)構(gòu)框圖:全局結(jié)構(gòu)框圖:全局結(jié)構(gòu)框圖:9醫(yī)藥管理系統(tǒng)在線購藥界面客戶端界面購物車界面訂單信息管理登錄注冊界面客戶留言界面管理端界面藥品管理模塊添加藥品分類模塊訂單信息模塊登錄模塊系統(tǒng)維護模塊JavaBeans客戶管理模塊藥品管理訂單管理用戶管理藥品分類類藥品分類管理類藥品類藥品管理類訂單類訂單管理類購物車類購物車管理類用戶類用戶管理類用戶登錄類圖 3-
21、3: 全局結(jié)構(gòu)示意圖客戶界面的系統(tǒng)功能模塊圖:客戶界面的系統(tǒng)功能模塊圖:數(shù)據(jù)庫10客戶登錄在線購藥在線購藥查看購物車查看訂單信息藥品查詢購買查看藥品詳細客戶注冊登錄客戶留言修改購買數(shù)量刪除已購藥品提交購物車清空購物車?yán)^續(xù)購藥查看訂單詳細購買查看藥品詳細資料購買圖 3-4: 客戶界面的系統(tǒng)功能模塊圖示意圖管理界面的系統(tǒng)功能模塊圖:管理界面的系統(tǒng)功能模塊圖:管理員登錄現(xiàn)有藥品管理添加新藥品添加藥品分類訂單管理用戶管理系統(tǒng)維護查看藥品資料現(xiàn)有藥品管理刪除藥品添加新藥品添加藥品分類刪除藥品分類查看訂單資料刪除訂單查看用戶資料查看用戶資料修改用戶資料刪除用戶11圖 3-5: 管理界面的系統(tǒng)功能模塊圖示意
22、圖3.43.4 開發(fā)平臺和開發(fā)工具開發(fā)平臺和開發(fā)工具 由于采用 JSP 架構(gòu),系統(tǒng)的功能加強,但其開發(fā)平臺和開發(fā)工具的選擇也是非常復(fù)雜。如上所述,系統(tǒng)結(jié)構(gòu)采用 Jsp/servlet + Javabeans + MySql;具體開發(fā)工具:前臺頁面使用 DreamWeaver 2004 MX 開發(fā),這種工具對 JSP 的支持比FrontPage 好;對于組件 Bean 的編寫和編譯用 JCreator,方便的提示符和小巧的內(nèi)存占用是我的首先;Jsp 服務(wù)器選用 TomCat5.0,后臺數(shù)據(jù)庫 MySql4.0,為了更好地操作數(shù)據(jù)庫,使用 EMS Sql Manager 3.0 進行 window
23、s 圖形化界面的數(shù)據(jù)庫操作。第第 4 4 章章 開發(fā)平臺和工具的簡介開發(fā)平臺和工具的簡介4.14.1 JSPJSP 的簡要說明的簡要說明JSP 即 Java Server Pages,在電子商務(wù)開發(fā)上,還可以選擇 ASP 平臺。但比較過兩者優(yōu)劣后才決定選擇 JSP。JSP 和 ASP 技術(shù)明顯的不同點:開發(fā)人員在對兩者各自軟件體系設(shè)計的深入了解的方式不同。JSP 技術(shù)基于平臺和服務(wù)器的互相獨立,輸入支持來自廣泛的,專門的,各種工具包,服務(wù)器的組件和數(shù)據(jù)庫產(chǎn)品開發(fā)商所提供。相比之下,ASP 技術(shù)主要依賴微軟的技術(shù)支持。JSP 技術(shù)依附于一次寫入,之后,可以運行在任何具有符合 JavaTM 語法結(jié)
24、構(gòu)的環(huán)境。取而代之過去依附于單一平臺或開發(fā)商,JSP 技術(shù)能夠運行在任何WEB 服務(wù)器上并且支持來自多家開發(fā)商提供的各種各樣工具包。這種基于組件的模式很有效提高應(yīng)用程序的開發(fā)效率,因為這種模式能夠使開發(fā)人員利用快捷的子組件快速創(chuàng)建模板應(yīng)用程序,然后再整合一些附加功能以后便可使用。像這樣有效的方法在 JSP 中無處不在,并可將其打包成一個Javabean 或一個工業(yè)標(biāo)準(zhǔn)化的 Javabean 組件。 終上所述,JSP 繼承 JAVA 一貫的跨平臺、易維護的特性,是我開發(fā)的首選。124.24.2 MySqlMySql 的簡要說明的簡要說明 選擇一個好的數(shù)據(jù)庫是開發(fā)一個系統(tǒng)的前提,當(dāng)然用 MySql
25、 也是與其它數(shù)據(jù)庫比較過的。下面列出 MySql 與其它數(shù)據(jù)庫的全方位對比:安全性:安全性:SQL server 沒有獲得任何安全證書。 Oracle Server獲得最高認證級別的 ISO 標(biāo)準(zhǔn)認證。DB2獲得最高認證級別的 ISO 標(biāo)準(zhǔn)認證。MySql獲得最高認證級別的 ISO 標(biāo)準(zhǔn)認證。多線程:多線程:MySQL 是完全多線程化的,每個連接有它自己的線程,這意味著沒有線程必須等待另一個線程(除非一個線程正在修改一張表,另外的線程想要存取);而在 SQL server 中,一旦一個連接被建立了,所有其它線程必須等到第一個線程完成,不管連接正在運行的查詢是短的或是長的。 聯(lián)結(jié):聯(lián)結(jié):如果改變
26、一個 SELECT 中的表的順序,SQL Server 可能變得異常地慢。在基準(zhǔn)套件中,比 MySQL 要慢超過 15000 倍的時間。這是由于 SQL Server 缺乏一個聯(lián)結(jié)優(yōu)化器以便用最佳的順序排定表。 Perl 接口:接口:MySql 和 SQL Server 有基本相同 Perl 接口,有一些增加的功能。 價格:價格: MySql 的免費成為不可取代的優(yōu)勢。終上所述,MySQL 以其極高的性價比成為中小型數(shù)據(jù)建庫的首選,本系統(tǒng)也選用 MySql。4.34.3 系統(tǒng)配置過程系統(tǒng)配置過程 由于 JSP 架構(gòu)采用不同公司的軟件產(chǎn)品,所以配置的復(fù)雜性是肯定的。下面列出其配置詳細過程:所需軟
27、件:所需軟件:(1) j2sdk-1_4_2-windows-i586.exe (2) jakarta-tomcat-5.0.28.exe13(3) mysql-4.0.24-win.zip(mysql 有 5.0 的 bate 版,不過對其 NullPointException 出錯一直是不能被廣泛接受的原因,在本系統(tǒng)下也只能用較為穩(wěn)定的 4.0 版本。)(4) jdbc 驅(qū)動(mysql 的驅(qū)動程序,其中 connector 采用 mysql-connector-java-3.0.8-stable-bin.jar可以正常運行;而在后面一個較新的版本會出現(xiàn) StringOutOfRange
28、錯誤,用最新的版本又會因為本數(shù)據(jù)庫設(shè)計的時間格式已經(jīng)不支持而不能正常讀取,所以版本的選擇是非常重要的。)一、安裝一、安裝 j2sdk在 Windows 下,直接運行下載的 j2sdk-1_4_1_01-windows-i586.exe 文件,根據(jù)安裝向?qū)О惭b到一個目錄,例如安裝到 d:serverj2sdk。1.配置環(huán)境變量:添加 CLASSPATH 變量./;%CLASSPATH%;D:serverj2sdk1.4.0libdt.jar;d:serverj2sdk1.4.0libtools.jar;2.添加 JAVA_HOME 變量,變量值為 d:serverj2sdk1.4.03.在原來的
29、 path 變量中,添加 d:serverj2sdk1.4.0bin,重新啟動二、二、Tomcat 的安裝的安裝jakarta-tomcat-5.0.28.exe 安裝文件,設(shè)安裝目錄為 d:servertomcat。下面設(shè)置環(huán)境變量:同 jdk 的環(huán)境變量,添加變量 TOMCAT_HOME,值為 d:servertomcat;增加變量 CATALINA_HOME,值為 d:tomcatserver,在 path 變量中加入d:servertomcatbin。下面啟動 tomcat,運行 tomcat 目錄下的 bin/startup.bat 文件就出現(xiàn) tomcat 運行控制臺,則 tomc
30、at 安裝成功。三、安裝三、安裝 MySQL第一步:解壓 mysql-4.0.24-win.zip,運行 mysql 安裝文件,把 mysql 安裝到d:servermysql第二步:在環(huán)境變量 path 中加入 d:servermysqlbin第三步:進入 d:servermysqlbin 目錄,運行 winmysqladmin,剛會出現(xiàn)對話框,設(shè)置 mysql 用戶密碼。第四步:進入 dos,進入 mysql/bin 下,運行以下命令打開 mysqlmysqld-nt standalone,則 mysql 開啟四、安裝四、安裝 MySQL 的驅(qū)動類的驅(qū)動類 jdbc解開 jdbc 驅(qū)動包,
31、把里面的 com 文件夾復(fù)制到 jsp 相應(yīng)的位置,可以是 tomcat的根目錄 common/classes 文件夾下,也可以是 jsp 網(wǎng)站 class 類 WEB-INF/class/下。當(dāng)加載驅(qū)動程序時,以便能找到相關(guān)的類,或者把 jdbc 包的路徑加入到classpath 變量中。144.44.4 配置關(guān)鍵性問題的解決配置關(guān)鍵性問題的解決 上述配置正確后,只是可以成功連接,但還有一些需要解決的問題才能正常運行 JSP 程序。4.4.1 Servlet 和 JSP 性能調(diào)整調(diào)整方法調(diào)整方法 1:禁止:禁止 servlet 和和 jsp 的自動重載的自動重載 為了節(jié)約開發(fā)時間,在開發(fā)階段
32、 Servlet/JSP 容器提供自動重載功能,方便在修改 Servlet/JSP 后不用重新啟動服務(wù)??墒?,在生產(chǎn)環(huán)境下面,卻是占用大量開銷,因為進行了沒有必要的重新載入的操作,所以帶來了很懷的性能影響。同時,在部分類載入,部分為載入的時候也可能帶來各種奇怪的沖突。因此在J2EE 的生產(chǎn)環(huán)境下關(guān)閉自動載入功能可以得到更好的性能。調(diào)整方法調(diào)整方法 2:控制:控制 HttpSession 在默認情況下,不要在 jsp 頁面中創(chuàng)建 HttpSessions 對象,jsp 頁面默認會自動創(chuàng)建 HttpSessions,如果 jsp 頁面中不需要 HttpSessions,為了節(jié)省一些性能,使用下面的
33、頁面指令避免自動創(chuàng)建 HttpSessions 對象: 調(diào)整方法調(diào)整方法 3:選擇正確的包含機制:選擇正確的包含機制 在 jsp 中有兩種方法使用包含文件:包含指令() 和包含動作 ()。包含指令在轉(zhuǎn)換的過程中包含文件內(nèi)容;也就是說,在一個頁面轉(zhuǎn)換成一個 servlet 的時候。包含動作在請求處理的階段包含文件內(nèi)容;也就是說,在一個用戶請求頁面的時候。包含指令快于包含動作。因此,除非被包含的內(nèi)容經(jīng)常變化,應(yīng)該使用包含指令提升性能。 調(diào)整方法調(diào)整方法 4:選擇正確的范圍在使用:選擇正確的范圍在使用 useBean 動作動作 Jsp 頁面的一個強大功能就是在 jsp 中交互使用 JavaBeans
34、 組件。通過使用動作標(biāo)簽,JavaBeans 可以被直接的嵌入 jsp 頁面中。語法如下: 15 范圍屬性指定了 bean 的作用范圍。它的默認值是 page。可以根據(jù)系統(tǒng)要求選擇正確的范圍。否則它會影響到應(yīng)用系統(tǒng)的性能。 4.4.24.4.2 MysqlMysql 與與 JSPJSP 網(wǎng)頁中文亂碼問題網(wǎng)頁中文亂碼問題以以 GBKGBK 字符集建庫建表:字符集建庫建表:用 EMS 來建 mysql 的數(shù)據(jù)庫及表,建庫時,從 EMS 菜單中選 create Database.新建一個數(shù)據(jù)庫,CharacterSet 選 gbk_bin;后面建表時,也要選擇同樣的字符集。 連接數(shù)據(jù)庫的連接數(shù)據(jù)庫的
35、 URL 后加參數(shù):后加參數(shù):假設(shè)新建的數(shù)據(jù)庫是 testdb,那么連接數(shù)據(jù)庫的 url 應(yīng)該為: jdbc:mysql:/localhost:3306/testdb?useUnicode=true&characterEncoding=gbk 每個每個 JSP 頁面都要聲明該中文字符集:頁面都要聲明該中文字符集:在每個 JSP 頁面的最上面都加上一句: ,這樣才能保證 JSP 頁面中的中文顯示正常。 上述都是在實際進行 JSP 頁面配置時遇到的問題,JSP 配置的復(fù)雜性是由于各個版本開發(fā)的不一致造成的,在調(diào)試頁面的同時也是對自己各方面知識水平的極大挑戰(zhàn)。第第 5 5 章章 系統(tǒng)的詳細設(shè)計系統(tǒng)的
36、詳細設(shè)計5.15.1 數(shù)據(jù)庫的實現(xiàn)數(shù)據(jù)庫的實現(xiàn)5.1.15.1.1 數(shù)據(jù)庫關(guān)系模式的設(shè)計數(shù)據(jù)庫關(guān)系模式的設(shè)計訂單(訂單號,藥品編號,訂貨數(shù)量)藥品信息(藥品名稱,藥品分類,英文名稱,生產(chǎn)廠家,批準(zhǔn)文號,藥品簡介,單價,總數(shù)量,剩余數(shù)量,登記時間,圖片)管理員(用戶名,密碼)藥品分類(分類編號,分類名稱)訂單詳細信息(訂單編號,用戶編號,提交訂單的時間,交貨時間,總金16額,備注,用戶 IP,是否付款,是否發(fā)貨)用戶(用戶名,密碼,真實姓名,性別,地址,聯(lián)系電話,郵編,E-mail,注冊時間,注冊 IP)5.1.25.1.2 數(shù)據(jù)庫的具體實現(xiàn)(表結(jié)構(gòu))數(shù)據(jù)庫的具體實現(xiàn)(表結(jié)構(gòu))訂單信息列表:訂單
37、信息列表:表 5-1:訂單信息列表FieldTypeNullKeyDefaultExtraCommentIDint(11)NULLPRINULLauto_increment主鍵,遞增orderIdint(11)NULL00-訂單號MedIDint(11)NULL00-藥品編號Amountint(11)NULLYESNULL-訂貨數(shù)量SQL 語句:語句:CREATE TABLE allorder ( ID int(11) NOT NULL auto_increment, orderId varchar(20) NOT NULL default , MedID int(11) NOT NULL d
38、efault 0, Amount int(11) default NULL, PRIMARY KEY (ID) ENGINE=MyISAM DEFAULT CHARSET=latin1;藥品信息列表:藥品信息列表:表 5-2:藥品信息列表FieldTypeNullKeyDefaultExtraCommentIDint(11)-PRI(NULL)auto_increment主鍵,遞增MedNamevarchar(40)-藥品名稱MedClassint(11)-0-藥品分類EnNamevarchar(25)YES-(NULL)-英文名Companyvarchar(150)YES-(NULL)-生產(chǎn)
39、廠家MedNovarchar(30)YES-(NULL)-批準(zhǔn)文號17ContexttextYES-(NULL)-藥品簡介PrincefloatYES-(NULL)-單價Amountint(11)YES-(NULL)-總數(shù)量Leav_numberint(11)YES-(NULL)-剩余數(shù)量RegTimedatetime-登記時間picturevarchar(200)YES-(NULL)-圖片SQL 語句:語句:CREATE TABLE med ( ID int(11) NOT NULL auto_increment, MedName varchar(40) NOT NULL default ,
40、 MedClass int(11) NOT NULL default 0, EnName varchar(25) default NULL, Company varchar(150) default NULL, MedNo varchar(30) default NULL, Content text, Prince float default NULL, Amount int(11) default NULL, Leav_number int(11) default NULL, RegTime datetime NOT NULL default 0000-00-00 00:00:00, pic
41、ture varchar(200) default NULL, PRIMARY KEY (ID) ENGINE=MyISAM DEFAULT CHARSET=latin1;管理員信息表:管理員信息表:表 5-3:管理員信息列表FieldTypeNullKeyDefaultExtraCommentAdminUservarchar(20)YES-(NULL)-用戶名AdminPassvarchar(50)YES-(NULL)-密碼SQL 語句:語句:CREATE TABLE meddmin ( AdminUser varchar(20) default NULL, AdminPass varcha
42、r(50) default NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;藥品分類表:藥品分類表:表 5-4:藥品分類表18FieldTypeNullKeyDefaultExtraCommentIDint(11)-PRI(NULL)auto_increment分類編號Classnamevarchar(30)-(NULL)-分類名稱SQL 語句:語句:CREATE TABLE medclass ( ID int(11) NOT NULL auto_increment, ClassName varchar(30) NOT NULL default , PRI
43、MARY KEY (Id) ENGINE=MyISAM DEFAULT CHARSET=latin1;訂單詳細表:訂單詳細表:表 5-5:訂單詳細表FieldTypeNullKeyDefaultExtraCommentIdint(11)-(NULL)-主鍵,遞增orderIdvarchar(20)-訂單編號UserIdint(11)-0-用戶編號SubmitTimedatetime-交單時間ConsignmentTimedatetimeYES-(NULL)-交貨時間TotalPricefloatYES-(NULL)-總金額contenttextYES-(NULL)-備注IPAddressvar
44、char(20)YES-(NULL)-用戶 IPIsPayoffint(11)YES-(NULL)-是否付款I(lǐng)sSalesint(11)YES-(NULL)-是否發(fā)貨SQL 語句:語句:CREATE TABLE orders ( Id int(11) NOT NULL auto_increment, orderId varchar(20) NOT NULL default , UserId int(11) NOT NULL default 0, SubmitTime datetime NOT NULL default 0000-00-00 00:00:00, ConsignmentTime d
45、atetime default NULL, TotalPrice float default NULL, content text, IPAddress varchar(20) default NULL,19 IsPayoff int(11) default NULL, IsSales int(11) default NULL, PRIMARY KEY (Id) ENGINE=MyISAM DEFAULT CHARSET=latin1;用戶信息表:用戶信息表:表 5-6:用戶信息表FieldTypeNullKeyDefaultExtraCommentIDint(11)-PRI(NULL)aut
46、o_incre主鍵,遞增UserNamevarchar(20)-用戶名Passwordvarchar(50)-密碼Namesvarchar(20)YES-(NULL)-真實姓名Sexchar(2)YES-(NULL)-性別Addressvarchar(150)YES-(NULL)-地址Phonevarchar(25)YES-(NULL)-聯(lián)系電話Postvarchar(8)YES-(NULL)-郵編Emainvarchar(5)YES-(NULL)-E-mailRegTimedatetimeYES-(NULL)-注冊時間RegIpAddressvarchar(20)YES-(NULL)-注冊
47、IPSQL 語句:語句:CREATE TABLE med_user ( Id int(11) NOT NULL auto_increment, UserName varchar(20) NOT NULL default , PassWord varchar(50) NOT NULL default , Names varchar(20) default NULL, Sex char(2) default NULL, Address varchar(150) default NULL, Phone varchar(25) default NULL, Post varchar(8) default
48、 NULL, Email varchar(50) default NULL, RegTime datetime default NULL, RegIpAddress varchar(20) default NULL, PRIMARY KEY (Id) ENGINE=MyISAM DEFAULT CHARSET=latin1;205.25.2 數(shù)據(jù)庫的連接數(shù)據(jù)庫的連接 下面首先介紹數(shù)據(jù)庫連接 Bean 的編寫,即 util.DataBase 類,這是一個公共類,其它類如果要連接數(shù)據(jù)庫,只要構(gòu)造這個類的對象就可以了。附主要代碼和注釋如下:package mms.util;/*注釋 *數(shù)據(jù)庫連接專用
49、包 *Company: med shop online * by :zhourong * version 1.0 */import java.sql.*;public class DataBase public Connection conn; public Statement stmt; public ResultSet rs=null; public String sqlStr=; public DataBase() this.connect(); public boolean connect() try/注冊驅(qū)動程序 Class.forName(org.gjt.mm.mysql.Driv
50、er).newInstance();/連接字符串,有連接數(shù)據(jù)庫的 IP,用戶名,密碼以及編碼格式等 String url =jdbc:mysql:/127.0.0.1/MedStore?user=root&useUnicode=true&characterEncoding=gbk; conn=DriverManager.getConnection(url); stmt = conn.createStatement (); catch(Exception ee) System.out.println(connect db error:+ee.getMessage(); return false;
51、21 return true; public static void main(String args) try DataBase db = new DataBase(); db.connect(); catch(Exception e) e.printStackTrace(); 5.35.3 功能模塊的詳細設(shè)計功能模塊的詳細設(shè)計5.3.15.3.1 組件包結(jié)構(gòu)組件包結(jié)構(gòu) 本系統(tǒng)基于 JavaBeans 技術(shù),用 JCreator 建立工程 MMS,系統(tǒng)包圖如下:mms.runloginop_medop_medclassop_buyop_userMMSmms.utilDataBasedataF
52、ormatmms.medallordermedmedclassordershopcaruser圖 5-1:系統(tǒng)包示意圖run 包下有五個類:包下有五個類:login 類:管理用戶登錄。op_med 類:管理藥品,包括藥品的查詢、修改、刪除、添加等。22op_medclass 類:管理藥品分類,包括藥品分類的查詢、添加和刪除。op_buy 類:管理訂單,包括訂單的查詢、添加、修改和刪除等。op_user 類:管理用戶,包括用戶的查詢、添加、刪除和修改等。med 包下有六個類:包下有六個類:allorder 類:訂單列表類。med 類:藥品類。medclass 類:藥品分類類。order 類:訂單
53、類。shopcar 類:購物車類。user 類:用戶類。util 包下有兩個類:包下有兩個類:DataBase 類:該類主要負責(zé)數(shù)據(jù)庫的連接。dataFormat 類:該類負責(zé)數(shù)據(jù)的格式轉(zhuǎn)換,例如:字符串格式化為 HTML代碼輸出等。5.3.25.3.2 具體模塊的代碼和相應(yīng)界面具體模塊的代碼和相應(yīng)界面a.a.字符處理字符處理 BeanBean 的編寫:的編寫: 在程序設(shè)計中經(jīng)常會涉及到有關(guān)字符串的處理,把這些處理方法集合到一個類中從而方便操作,即 util.dataFormat.java,相關(guān)代碼和注釋如下:package mms.util;import java.lang.*;import
54、 java.util.*;public class dataFormat public dataFormat() /*注釋 * 把字符串轉(zhuǎn)換成適合于網(wǎng)頁顯示的文本 * param s * return */ public static String toHtml(String s) if (s=null) return s;23 s=strReplace(s,&,&); s=strReplace(s,>); s=strReplace(s,"); s=parseReturn(s,n ); return s; /*注釋 * 把字
55、符串 sBody 中的 sFrom 用 sTo 替換 * param sBody * param sFrom * param sTo * return */ public static String strReplace(String sBody, String sFrom, String sTo) int i,j,k,l; if (sBody=null | sBody.equals() return ; i = 0; j = sFrom.length(); k = sTo.length(); StringBuffer sss = new StringBuffer(sBody.length()
56、; boolean bFirst=true; l = i; while (sBody.indexOf(sFrom,i)!=-1) i = sBody.indexOf(sFrom,i); sss.append(sBody.substring(l,i); sss.append(sTo); i += j; l = i; sss.append(sBody.substring(l); return sss.toString(); /*注釋* 把字符串中的rn轉(zhuǎn)換成n * param String sBody : 要進行替換操作的字符串 * param String sEndwith : 要替換成為的字符
57、串24 */ public static String parseReturn(String sBody, String sEndwith) StringTokenizer t = new StringTokenizer(sBody, rn); StringBuffer sss = new StringBuffer(sBody.length(); boolean bFirst=true; if (sEndwith.trim().equals() sEndwith=n; while (t.hasMoreTokens() String s=t.nextToken(); s=s.trim(); wh
58、ile (s.startsWith() s=s.substring(2); if (!s.equals() if (bFirst) bFirst=false; else sss.append(sEndwith); sss.append(s); return sss.toString(); /*注釋 * 將字符串格式化成 HTML 代碼輸出 * 只轉(zhuǎn)換特殊字符,適合于 HTML 中的表單區(qū)域 * param str 要格式化的字符串 * return 格式化后的字符串 */ public static String toHtmlInput(String str) if (str = null)
59、return null; String html = new String(str); html = strReplace(html, &, &); html = strReplace(html, , >); return html; /*注釋 * 將普通字符串格式化成數(shù)據(jù)庫認可的字符串格式25 * param str 要格式化的字符串 * return 合法的數(shù)據(jù)庫字符串 */ public static String toSql(String str) String sql = new String(str); return strReplace(sql, , ); b.藥品
60、藥品 Bean 的編寫的編寫 應(yīng)用面向?qū)ο蟮乃枷氚丫哂泄残缘膶嶓w抽象成一個類,這個 med.med 便是這樣的類。package mms.med;public class med private long Id; /ID 序列號 private String MedName; /藥名 private int MedClass; /藥品類別 private String classname ; /藥品類別名 private String EnName; /英文名稱 private String Company; /生產(chǎn)廠家 private String MedNo ; /批準(zhǔn)文號 private
61、 String Content ; /藥品介紹 private float Prince ; /單價 private int Amount ; /總數(shù)量 private int Leav_number ; /剩余數(shù)量 private String RegTime ; /登記時間 private String picture ; /藥品圖片 public med() Id = 0; MedName = ; MedClass = 0; classname = ; EnName = ; Company = ; MedNo = ; Content = ;26 Prince = 0; Amount =
62、0; Leav_number = 0; RegTime = ; public void setId(long newId) this.Id = newId; public long getId() return Id; public void setMedName(String newMedName) this.MedName = newMedName; public String getMedName() return MedName; public void setMedClass(int newMedClass) this.MedClass = newMedClass; public i
63、nt getMedClass() return MedClass; public void setClassname(String cname) this.classname = cname; public String getClassname() return classname; public void setEnName(String newEnName) this.EnName = newEnName; public String getEnName() return EnName; public void setMedNo(String newMedNo) this.MedNo =
64、 newMedNo;27 public String getMedNo() return MedNo; public void setCompany(String newCompany) this. Company = newCompany; public String getCompany () return Company; public void setContent(String newContent) this.Content= newContent; public String getContent() return Content; public void setPrince(f
65、loat newPrince) this.Prince = newPrince; public float getPrince() return Prince; public void setAmount(int newAmount) this.Amount = newAmount; public long getAmount() return Amount; public void setLeav_number(int newLeav_number) this.Leav_number = newLeav_number; public int getLeav_number() return L
66、eav_number; public void setRegTime(String newRegTime) this.RegTime = newRegTime; 28 public String getRegTime() return RegTime; public void setPicture(String newPicture) this.picture = newPicture; public String getPicture() return picture; ;c.藥品分類藥品分類 Bean 的編寫:的編寫: med.medclass 類,對藥品分類的抽象,其寫法類似于 med 類,都是加入相應(yīng)的 get、set 屬性值。package mms.med;public class medclass private int Id;/ID 序列號 private String ClassName;/藥品類別 public medclass() Id = 0; ClassName = ; public medclass(int newId, String newname) Id
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案