日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

基于JSP的健身俱乐部会员管理系统的设计与实现(论文+PPT+源码)

發(fā)布時間:2023/12/29 windows 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于JSP的健身俱乐部会员管理系统的设计与实现(论文+PPT+源码) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

= 分類號_______________ 密級________________

UDC _______________ 學號_ ___

畢業(yè)設計(論文)

論文題目基于JSP的健身俱樂部會員管理系統(tǒng)的設計與實現(xiàn)
Thesis TopicDesign and Implementation of Fitness Club Membership Management System Based on JSP

畢業(yè)設計(論文)任務書

第1頁

畢業(yè)設計(論文)題目:基于JSP的健身俱樂部會員管理系統(tǒng)的設計與實現(xiàn)畢業(yè)設計(論文)要求及原始數(shù)據(jù)(資料):1.綜述國內(nèi)外關于健身俱樂部會員管理平臺的現(xiàn)狀;2.深入了解俱樂部會員管理的基本流程與相關事務;3.熟練掌握jsp技術,JDBC技術,訓練編寫jsp的能力;4.設計并實現(xiàn)基于jsp的健身俱樂部會員管理系統(tǒng);5.深入分析會員管理系統(tǒng)中的相關邏輯;6.訓練檢索文獻資料和利用文獻資料的能力;7.訓練撰寫技術文檔與學位論文的能力。 畢業(yè)設計(論文)主要內(nèi)容: 1.綜述健身對提高當今人們生活質(zhì)量的重要性; 2.了解jsp,JDBC,MVC相關技術; 3.熟悉會員管理系統(tǒng)的開發(fā)環(huán)境; 4.設計會員管理的相關邏輯,建立各個事物的關聯(lián); 5. 深入分析會員管理系統(tǒng)中功能的增加和刪除的設計流程; 6.熟練掌握基于jsp的在線管理系統(tǒng)的編寫; 7.設計與實現(xiàn)基于jsp的會員管理系統(tǒng)的程序。 學生應交出的設計文件(論文): 1.內(nèi)容完整、層次清晰、敘述流暢、排版規(guī)范的畢業(yè)設計論文; 2.包括畢業(yè)設計論文、源程序等內(nèi)容在內(nèi)的畢業(yè)設計電子文檔及其它相關材料。
主要參考文獻(資料):BruceEckel. JAVA編程思想[M]. 機械工業(yè)出版社, 2003.1~78孫一林,彭波等. JSP數(shù)據(jù)庫編程實例[M]. 清華大學出版社, 2002.1~465Brown等. JSP編程指南(第二版)[M]. 電子工業(yè)出版社, 2003,1~268孫涌. 現(xiàn)代軟件工程[M]. 北京希望電子出版社,2003,1~246姜翠霞. 數(shù)據(jù)庫系統(tǒng)基礎[M]. 航空航天大學出版社, 2009.51~208Flangan. JAVA技術手冊[M]. 中國電力出版社, 2002.23~294 LeeAnnePhilips. 巧學活用JSP[M]. 電子工業(yè)出版社, 2004.1~319薩師煊, 王珊. 數(shù)據(jù)庫系統(tǒng)概論[M]. 高等教育出版社, 2002.3~460李曙光. JSP開發(fā)實例完全剖析[M]. 電子工業(yè)出版社, 2006.23~400[美]Walter Savitch. Absolute Java[M]. 電子工業(yè)出版社. 2005Kong Michael. An environment for secure SQL/Server computing [M].Oxford University Press Inc., 1993: 149 W.Clay,Richardson, Donald,Avondolio. The Java high class weaves a distance:JDK 5[J]. Scientific & Technology Book Review,No.3, 2006:17-18Sanden, Bo. SYSTEMS PROGRAMMING WITH JSP:EXAMPLE - A VDUCONTROLLER[C]. Communications of the ACM,Vol28,No10,1985:1059-1067Tsui,Frank F. JSP EM DASH A RESEARCH SIGNAL PROCESSOR IN JOSEPHSON TECHNOLOGY[C]. IBM Journal of Research and Development,Vol24, No2,1980:243-252專業(yè)班級學生要求設計(論文)工作起止日期指導教師簽字日期教研室主任審查簽字日期系主任批準簽字日期

基于JSP的健身俱樂部會員管理系統(tǒng)的設計與實現(xiàn)

摘 要

目前我國雖然己經(jīng)開發(fā)出了應用計算機操作的健身俱樂部管理系統(tǒng),但管理軟件,管理方法和管理思想三者往往相脫節(jié)。造成我國健身俱樂部信息管理系統(tǒng)極端化的缺陷。在國外健身俱樂部已經(jīng)有了一整套涉獵了人力資源開發(fā)和管理,市場銷售,廣告制作投放計劃到健身項目規(guī)劃的管理系統(tǒng),由此可見國外擁有了更加全面具體強大的俱樂部管理系統(tǒng)并已投入了使用并為其帶來了巨大利益。

設計與實現(xiàn)信息管理系統(tǒng)要根據(jù)俱樂部對顧客及其員工管理的實際情況來設計。能更好的方便俱樂部對顧客、員工和健身設備進行集中的管理工作。本信息管理系統(tǒng)包括的功能為:修改登錄密碼、工作人員管理、會員卡類型管理、會員資料管理、健身器材管理、教練執(zhí)教管理、安全退出系統(tǒng)。

本系統(tǒng)的發(fā)展適和了健身俱樂部的自動管理需求,經(jīng)過對現(xiàn)實的需求探討,本系統(tǒng)采用了JSP和MySQL數(shù)據(jù)庫管理系統(tǒng)作為基礎工具進行開發(fā)。運用了B/S的3層結(jié)構(gòu)模式和瑞典MySQL AB公司開發(fā)的MySQL數(shù)據(jù)庫,并在設計初期。首先,完成了數(shù)據(jù)庫系統(tǒng)的搭建,在設計中錄入了一些數(shù)據(jù);其次,完成了數(shù)據(jù)庫、開發(fā)環(huán)境軟件和運行環(huán)境軟件的銜接并最終實現(xiàn)了本系統(tǒng)的運行。JSP擁有Java語言“一次性編寫,各處都能運行”的特點,用JSP為基礎做成的這套俱樂部管理系統(tǒng)可以輕松移植到任何的平臺進行運行。所以用JSP來開發(fā)是完全可行的。

關鍵詞:健身中心,JSP,B/S結(jié)構(gòu)

Design and Implementation of Fitness Club Membership Management System Based on JSP

Abstract

Although our country has developed a fitness club management system application of computer operations, but management software, management methods and ideas of the three phases are often disjointed. Cause of extreme fitness club information management system of the defects. Fitness club in a foreign country has been set forays into human resource development and management, marketing, advertising plans to launch a health project planning management system. Thus abroad have a more specific and comprehensive management system and powerful clubs have been put into use and its enormous benefits.

Design and implementation of information management systems to be designed according to the club management to customers and its employees actual situation. To better facilitate the club for customers, employees and fitness facilities for centralized management. The information management system includes functionality for: modify login password, member type management, staff management, member information management, fitness equipment management, coaching management, safe withdrawing.

The system is suitable for the development of automated management needs and fitness club, after the demand for the real discussion and MySQL database management system as a the system uses the fundamental tool development. The use Sweden MySQL AB of the B/S three-layer structure model and developed in MySQL database and the early stages of design. First, build a complete database system, input some data in the design; secondly, finished databases software development environment and run time environment software interface and ultimately the operation of the system. JSP has the Java language, "once written, everywhere can run" features, based on JSP made of this club management system, you can easily migrate to any platform for running

Key words:?Fitness center, JSP, B/S structure

目 錄

摘 要I

AbstractII

第一章 緒論1

1.1 課題背景1

1.2 課題研究的目的和意義2

1.3 課題發(fā)展前景及趨勢3

1.4 課題內(nèi)容簡介4

1.5 開發(fā)工具4

1.5.1 MyEclipse5

1.5.2 Tomcat5

1.5.3 MySQL5

1.5.4 JSP6

1.5.5 JavaScript6

1.6 軟硬件需求7

第二章 需求分析8

2.1 需求調(diào)研8

2.2 可行性分析8

2.2.1技術可行性8

2.2.1.1 JSP技術8

2.2.1.2 MyEclipse Enterprise Workbench 8.59

2.2.1.3 SQLServer20059

2.2.1.4 JDBC技術9

2.2.1.5 B/S模式12

2.2.2 操作可行性13

2.2.3 社會可行性14

2.2.4 可行性小結(jié)14

2.3 功能模塊需求分析14

2.4 界面需求14

第三章 系統(tǒng)分析與設計15

3.1 數(shù)據(jù)庫的分析與設計16

3.1.1數(shù)據(jù)庫的概念結(jié)構(gòu)設計16

3.1.2數(shù)據(jù)庫的邏輯結(jié)構(gòu)設計18

3.1.3 數(shù)據(jù)庫的連接原理21

3.2中文亂碼問題處理22

第四章 系統(tǒng)功能實現(xiàn)23

4.1系統(tǒng)登陸頁面實現(xiàn)24

4.2 管理員功能模塊26

4.2.1 工作人員管理26

4.2.2會員資料管理28

4.2.3健康器材管理30

4.2.4 教練執(zhí)教管理33

4.2.6 修改密碼35

4.2.7 退出系統(tǒng)36

第五章 系統(tǒng)測試36

5.1 測試的任務及目標37

5.1.1 測試的任務37

5.1.2 測試的目標37

5.2 測試方案37

5.3 測試過程37

5.4 測試用例38

5.4.1 主頁面的登錄模塊測試38

5.4.2 游客注冊測試38

5.5 其他錯誤41

5.6 小結(jié)41

結(jié) 論42

參考文獻43

致 謝44

附錄:英文技術資料翻譯45

英文原文46

中文譯文53

第一章 緒論

隨著計算機科學與技術的迅速發(fā)展,微機技術己經(jīng)涉及到了人們生活和工作中的每一個角落,與之而來的高性能、高效率的計算機軟件給其他各行各業(yè)的技術更新和科技革命都起到了推動的作用。

健身一種體育項目,尤指包括徒手或用器械的體操,體操可以增強力量、柔韌性、增加耐力、提高協(xié)調(diào)、控制身體各部分的能力,從而使身體強健。如今社會,很多人都長期處于緊張的環(huán)境壓力。例如,面臨高考升學、商務應酬、企業(yè)經(jīng)營、人際交往、職位競爭等社會活動。所以,沒有過多的時間進行運動,而進入亞健康狀態(tài)。而健身俱樂部的出現(xiàn),可以使人們用少量的時間來系統(tǒng)的、專業(yè)的鍛煉身體,使人們獲得健康。健身俱樂部的發(fā)展適應人們需求,所以俱樂部也需要更好的信息管理系統(tǒng)來幫助俱樂部管理,俱樂部有了發(fā)展,人們就能更好的利用時間進行鍛煉。

如今的歐美國家,健身己經(jīng)不是追求時尚,而是獲得健康的方式。它己經(jīng)逐步走入人們的生活,成為生活必需品。越來越多的人也開始接受健身這種活動。而健身俱樂部發(fā)展的也越來越迅速。在我國,俱樂部的數(shù)量和質(zhì)量都遠遠落后于歐美等國家。在經(jīng)濟快速發(fā)展的同時,人們的生活水平也在不斷的提高,所以越來越多的人對通過健身來鍛煉身體的意識也越來越強。花在這上面的費用和時間也越來越多。所以,中國的健身業(yè)己經(jīng)蓬勃發(fā)展,在北京,就出現(xiàn)了很多的著名俱樂部。

開發(fā)該健身俱樂部信息管理系統(tǒng)的目的是使健身俱樂部的工作效率得到提高。只要根據(jù)俱樂部對顧客及其員工管理的實際情況來設計就能更好的方便俱樂部對顧客、員工和健身設備進行集中的管理工作。

課題背景

中國加入WTO之后,越來越多的世界級企業(yè)和集團進入中國市場,加速了我們的經(jīng)濟發(fā)展,同時也對本土的企業(yè)和集團公司帶了很多挑戰(zhàn),相對陳舊的低效率的企業(yè)管理體制己經(jīng)不能適宜新的市場競爭的需要,為了能夠適應新的挑戰(zhàn),利用企業(yè)局域網(wǎng)對企業(yè)資源進行合理利用,使企業(yè)管理規(guī)范化、科學化己經(jīng)成為一種必然的趨勢。企業(yè)管理系統(tǒng)的迅速發(fā)展改變了傳統(tǒng)的管理手段,隨著我國經(jīng)濟不斷的持續(xù)發(fā)展,人民生活水平的的提高,也提高了管理效率,健康也就成為了人們追求高質(zhì)量生活中十分關心的問題。科學高效的健身項目越來越受到廣大消費者的青睞和認可,各種專業(yè)的健身俱樂部會所的出現(xiàn)為追求科學高效的人們提供了有利條件。

經(jīng)調(diào)查,我國當前健身俱樂部會所擁有超過數(shù)萬家,規(guī)模有大也有小,相對比較出名有中體倍力和青鳥等健身俱樂部,他們擁有學習國外的先進健身俱樂部管理經(jīng)驗以及利用Internet網(wǎng)等先進計算機技術,使得自己的業(yè)務由單一的通過俱樂部平臺面向廣大客戶上升到了客戶足不出戶就可以享受到專業(yè)新聞的指導和科學健身知識,方便了客戶的利益也在同行業(yè)中成為了佼佼者,他們的成功不僅歸功于科學管理還要歸功于計算機網(wǎng)絡帶來的便利,這是利用計算機軟件及網(wǎng)絡技術擴大其業(yè)務成功的典范,但是國內(nèi)健身俱樂部應用這種模式的運營的又有多少呢?其實并不多,大多健身俱樂部的管理模式和業(yè)務交流還停留在傳統(tǒng)的,低效率的用人管理的階段,現(xiàn)代管理的需求致使人工管理模式己經(jīng)越來越不能滿足,一方面是因為每天的客戶量越來越多,手工處理的方式避免不了會在業(yè)務和財務等方面上出現(xiàn)短板,給客戶和俱樂部帶來了不必要的麻煩,于此同時也給俱樂部的經(jīng)營和管理帶來了很多弊端;另一方面經(jīng)營者也經(jīng)常會由于財務管理和會員的管理而感到“頭痛”,隨著俱樂部的經(jīng)營規(guī)模的不斷壯大,上面的問題會越來越明顯,一定會成為俱樂部發(fā)展的絆腳石。無論規(guī)模大小,各個健身俱樂部為了更好的生存和發(fā)展就必須在管理模式上引進先進的管理軟件系統(tǒng),從而在會員管理,會員管理,產(chǎn)品管理,新聞管理,項目管理,及活動管理等方面提高和改善了手工方式所不能達到的效果和價值。

將計算機管理應用在健身俱樂部的管理中也是近年來隨著計算機被廣泛的應用于各行各業(yè)之中的一個典范。健身俱樂部管理此外,一個集成開發(fā)和管理公司在每個主要部分(自、項目產(chǎn)品,活動)代表更先進的管理理念和管理方法健身對現(xiàn)代化管理的重要工具,這房子我們健身房越來越廣泛的應用。

目前健身俱樂部會所的計算機管理水平還是很低,我也曾實地走訪過幾家健身俱樂部,他們的計算機應用是處在剛剛起步時的使用階段,但是俱樂部采用計算機軟件管理業(yè)務、財務和活動記錄等諸多問題即將成為健身俱樂部會所和其他相關企業(yè)發(fā)展的必然趨勢和必不可少的工具。

課題研究的目的和意義

中國2008奧運會成功舉辦,全民健身的熱浪一浪高過一浪,最近這些年,各種層次、類型的健身俱樂部在全國各地不斷的發(fā)展起來。這象征著中國體育基制改革逐步向縱深的方向發(fā)展,基層的體育組織機構(gòu)正在不斷的發(fā)生改變,制度的創(chuàng)新不斷出現(xiàn)。健身俱樂部的不斷興起受到全國各界人民的歡迎。隨著社會不斷的進步,人民的富足,城市化發(fā)展的加速,越來越多的占地被高樓大廈所取代,加之環(huán)境的惡化和工作節(jié)奏的加快,高效科學的健身俱樂部逐漸被廣大消費者所認可,為向廣大消費者提供專業(yè)的健身服務,實施專業(yè)化、科學化的管理是俱樂部共同追求的目標。作為經(jīng)營者,應該培養(yǎng)市場意識,將工業(yè)與健身行業(yè)相結(jié)合,建立自己的管理系統(tǒng),在硬件上達到一定的高度,在軟件上要有自己的一套管理模式。只有具備了高效地管理、個性化的服務,才會使這個行業(yè)有更長遠地發(fā)展。

在當今這個人民素質(zhì)逐漸提高、社會經(jīng)濟不斷發(fā)展的時代,網(wǎng)絡技術己經(jīng)進入高速的發(fā)展時期,信息化的時代變革給所有的領域不斷帶來新的機會。跟著電腦辦公自動化的普及,公司的自動化管理、顧客的自動化管理出現(xiàn)了,這全都都歸功于電腦發(fā)展的巨大奉獻,網(wǎng)絡的世界里蘊藏著無數(shù)的生機,這只有你想不到的事情,沒有你做不到的。

計算機的辦公自動化己經(jīng)將管理從傳統(tǒng)模式解放出來,但只是作為一個機器對它來說是一種巨大的浪費,由計算機聯(lián)合所組成的互聯(lián)網(wǎng)正在改變整個管理思路與體系。他可以實現(xiàn)單位管理最根本的需求:投入最少的資源做最有效率的工作。將計算機裝備起來,然后根據(jù)自我的管理理念,顧客信息管理不但需要創(chuàng)造一個全新的客戶數(shù)據(jù)管理與事業(yè)關系管理系統(tǒng),而且還要將它放在最前面,換掉經(jīng)營者的以前的大部分辦公程序,將會更大程度的減輕管理者的工作任務,提高事業(yè)人員的管理效率,用一個更加優(yōu)秀可靠的事業(yè)形象呈現(xiàn)在客戶們的面前,并且在客戶資料的收集、統(tǒng)計等方面更加的快速,更能迅速有效的予給管理者參考。這些都為我們開發(fā)這樣的軟件提供了良好的條件,使經(jīng)營現(xiàn)代化、科學化成為可育昌。

隨著北京奧運會申辦成功,人們的健身意識不斷增強。物質(zhì)和意識的雙重保障便注定了中國健身業(yè)的發(fā)展會越來越好,而這正是一個管理公司得以生存并發(fā)展的基礎。現(xiàn)在中國健身行業(yè)的發(fā)展現(xiàn)狀差不多和國外20年前一樣,國內(nèi)俱樂部的歷史只有短短四五年,經(jīng)營者在管理上沒有豐富的經(jīng)驗。我們正好可以利用國外成熟的經(jīng)營管理經(jīng)驗來為中國健身產(chǎn)業(yè)服務并促進其發(fā)展。管理公司雖然引進國外的管理系統(tǒng),但由于國情的不同,所以經(jīng)營模式和數(shù)據(jù)不能照搬,而是借鑒過來適應國內(nèi)的具體需要。即使是一套管理標準,在不同的地方,不同的俱樂部,也要配合其具體情況而定。

目前,國內(nèi)己研究開發(fā)了一些健身俱樂部的管理軟件,比較突出的有貝爾健身俱樂部管理軟件、飛躍健身俱樂部管理軟件、飛揚健身俱樂部管理軟件等,這些軟件的功能較為全面,涉及了客戶、經(jīng)營者、會員等的多方面的管理,使俱樂部的經(jīng)營管理更為科學化、技術化,方便化。現(xiàn)在國內(nèi)較為出名的大型健身俱樂部例如中體倍力,青鳥都建立了較為完善的基于C/S模式的網(wǎng)絡管理機智,是百姓可以足不出戶就可以想享受到網(wǎng)絡帶來的方便快捷的專業(yè)的健身指導和服務。

另外,隨著信息技術的日益成熟和普及,健身行業(yè)的不斷發(fā)展和盛行,與國外的交流與合作將成為一個必然趨勢。隨之帶來的問題就是要實現(xiàn)俱樂部管理的網(wǎng)絡化。但就網(wǎng)上收集的資料來看,目前多數(shù)的軟件都是PB, Delphi等開發(fā)完成的,這些只能用于俱樂部內(nèi)部的經(jīng)營和管理,卻脫離了互聯(lián)網(wǎng)這個大平臺,客戶本可以足不出戶就可以了解自己的健身狀況和健身俱樂部相關信息,這種開發(fā)己經(jīng)與客戶的需求背道而馳,為了能夠使客戶和健身俱樂部更好的聯(lián)系和互動,采用C/S模式開發(fā)動態(tài)的網(wǎng)站,實現(xiàn)數(shù)據(jù)庫的動態(tài)維護將是一個發(fā)展方向。我們可以借鑒己開發(fā)軟件的優(yōu)點,根據(jù)實際需求調(diào)查,在此基礎上開發(fā)出功能較為完善的基于Web的網(wǎng)絡管理系統(tǒng),JSP是在ASP和PHP技術之后,一種新興的動態(tài)網(wǎng)站開發(fā)技術,它不像ASP技術的安全性較差,也不像PHP技術擴展性較小,在繼承了他們優(yōu)點的基礎之上,還能夠支持XML技術,使得功能更加強大,逐漸成為新興網(wǎng)站開發(fā)的首選技術,這次我們用JSP開發(fā)這一軟件,正迎合了這一技術發(fā)展趨勢,對我們來說也是一次挑戰(zhàn)。

課題發(fā)展前景及趨勢

本課題是采用JSP技術進行開發(fā)的基于WEB的健身俱樂部管理系統(tǒng),隨著近些年Internet的飛速發(fā)展,傳統(tǒng)的提供靜態(tài)網(wǎng)頁的Web服務己經(jīng)無法滿足廣大Internet用戶的需求,動態(tài)網(wǎng)頁技術隨之誕生,如ASP, PHP, JSP等,其中JSP 由于具備“一次編寫,隨處運行(Write Once,Run Anywhere)”的特點,在WEB應用開發(fā)中得到了廣泛的應用。應用JSP技術開發(fā)健身俱樂部管理系統(tǒng)能夠使JSP在網(wǎng)絡技術中的性能得到淋漓盡致的發(fā)揮,調(diào)查研究表明,大多數(shù)健身俱樂部管理軟件的主要問題是受阻基于健身俱樂部會所內(nèi)部的管理的,脫離了與廣大客戶的聯(lián)系,它變的孤立而且功能受限,一個脫離了廣大客戶的管理系統(tǒng),就必將在未來的市場中無用武之地。更與現(xiàn)今的常用的軟件開發(fā)模式B/S, C/S模式背道而馳,加之這樣JSP技術可以支持多種運行平臺,運行速度快,難易程度低,擴展性安全性好,數(shù)據(jù)庫支持多等特點,為設計者、使用者和維護者提供了方便。

核心問題之一在當前發(fā)展趨勢的發(fā)展健身俱樂部管理系統(tǒng)和互聯(lián)網(wǎng)結(jié)合引發(fā)需求為健身俱樂部管理互聯(lián)網(wǎng)規(guī)模的健身俱樂部,因為根據(jù)越來越多的業(yè)務信息交換、健身俱樂部和俱樂部之間擴大管理進一步追求不同,更方便數(shù)據(jù)共享政策,沒有燃燒我的摩托車這己經(jīng)滿足于一個簡單的方法來共享文件和信息,但不再是嗎?看看核心大人,數(shù)據(jù)庫自己的健康,我將客戶機器系統(tǒng)。互聯(lián)網(wǎng)絡系統(tǒng)結(jié)構(gòu)轉(zhuǎn)換的原因?qū)Ψ掌髂P?#xff0c;雖然它總是根據(jù)俱樂部自身的進步,特別是大型健身俱樂部,國際發(fā)展工作我必須跨地區(qū)可能己經(jīng)有一些客戶,甚至國際體系和數(shù)據(jù)傳輸,信息共享和表示當互聯(lián)網(wǎng)可以跨境區(qū)域,用戶可以享受偉大的不可避免的俱樂部堅決持有許多客人突然,他占領的激烈的市場競爭能力,互聯(lián)網(wǎng)網(wǎng)絡之間的聯(lián)系,更多的顧客和健身俱樂部與客戶服務工作與客戶提供的俱樂部信息管理系統(tǒng)網(wǎng)絡通過一個良好的快速查詢、分析,建立科學的管理手段,健康俱樂部的大規(guī)模數(shù)據(jù)管理和報告的一種多層次的總結(jié),所以健身房網(wǎng)絡管理迫切需要另一個互聯(lián)網(wǎng)俱樂部管理提供各種服務管理如何結(jié)合管理支持系統(tǒng)和互聯(lián)網(wǎng)網(wǎng)絡技術提供有機網(wǎng)絡,一組查詢?yōu)槭裁磿r間管理俱樂部內(nèi)部的一個綜合管理系統(tǒng),己經(jīng)報告的基礎,一個重大的挑戰(zhàn)。

課題內(nèi)容簡介

本課題解決的問題是如何通過設計一個切實可行的軟件系統(tǒng)來解決健身俱樂部管理目前存在的一系列問題。該課題是基于Windows的操作系統(tǒng),后臺數(shù)據(jù)庫采用MySQL,前端使用JSP進行開發(fā)。

本課題所研究的健身俱樂部管理系統(tǒng)主要由六個模塊組成,即人事資料模塊、預約管理模塊、器材管理模塊、會員管理模塊、系統(tǒng)管理模塊。運行本系統(tǒng)先由登陸界面窗口進入用戶權(quán)限認證窗口,通過用戶名和口令驗證的用戶方可進入系統(tǒng)主窗口進行瀏覽與操作。

會員管理子系統(tǒng):包括會員個人信息的修改、會員的增加和刪除、會員信息查詢以及會員卡的管理。

預約管理子系統(tǒng):包括健身預約信息的錄入、和刪除。

人事資料管理子系統(tǒng):包括人事資料的添加、刪除、修改功能。

器材管理子系統(tǒng):包括器材信息的錄入、增加和刪除、修改、產(chǎn)品信息查詢。

考勤、工資管理子系統(tǒng):包括考勤、工資信息的錄入、增加和刪除、修改。

系統(tǒng)維護子系統(tǒng):包括修改密碼、修改用戶名、刪除管理員和增加管理員四個功能模塊。

用戶管理模塊:管理員添加、刪除、查詢用戶基本信息和設置用戶權(quán)限。

開發(fā)工具

此次設計主要采用MyEclipse加Tomcat后臺服務器進行,設計過程中頁面主要使用JSP技術完成,下面對MyEclipse、Tomcat和MySQL數(shù)據(jù)庫進行簡要介紹。

MyEclipse

MyEclipse,是一個十分優(yōu)秀的用于開發(fā)Java, J2EE的Eclipse插件集合,MyEclipse的功能非常強大,支持也十分廣泛,尤其是對各種開元產(chǎn)品的支持十分不錯。MyEclipse企業(yè)級工作平臺(MyEclipse Enterprise Workbench ,簡稱MyEclipse)是對Eclipse IDE的擴展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布,以及應用程序服務器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。

Tomcat

Tomcat是一個小型的輕量級應用服務器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。可以這樣認為,當在一臺機器上配置好Apache 服務器,可利用它響應對HTML頁面的訪問請求。實際上Tomcat 部分是Apache 服務器的擴展,但它是獨立運行的,所以當運行Tomcat 時,它實際上作為一個與Apache 獨立的進程單獨運行的。

MySQL

MySQL是最流行的開放源碼SQL數(shù)據(jù)庫管理系統(tǒng),它是由MySQL AB公司開發(fā)、發(fā)布并支持的。MySQL AB是由多名MySQL開發(fā)人創(chuàng)辦的一家商業(yè)公司。它是一家第二代開放源碼公司,結(jié)合了開放源碼價值取向、方法和成功的商業(yè)模型。

數(shù)據(jù)庫是數(shù)據(jù)的結(jié)構(gòu)化集合,計算機是處理大量數(shù)據(jù)的理想工具,因此,數(shù)據(jù)庫管理系統(tǒng)在計算方面扮演著關鍵的中心角色,或是作為獨立的實用工具,或是作為其他應用程序的組成部分。

MySQL服務器還有一套實用的特性集合,這些特性是通過與我們用戶密切合作而開發(fā)的。在我們的基準測試主頁上,給出了MySQL服務器和其他數(shù)據(jù)庫管理器的比較結(jié)果。

MySQL服務器最初是為處理大型數(shù)據(jù)庫而開發(fā)的,與已有的解決方案相比,它的速度更快,多年以來,它已成功用于眾多要求很高的生產(chǎn)環(huán)境。盡管MySQL始終在不斷發(fā)展,但目前MySQL服務器已能提供豐富和有用的功能。它具有良好的連通性、速度和安全性,這使得MySQL十分適用于訪問Internet上的數(shù)據(jù)庫。

每次發(fā)布的MySQL服務器均是可用的,權(quán)當用戶嘗試源自“灰色區(qū)域”的代碼時才會出現(xiàn)問題。當然,新用戶不了解“灰色區(qū)域”是什么。因此,在本節(jié)中,我們介紹了目前已知的這類區(qū)域。本節(jié)所做的介紹主要針對MySQL服務器5.5版和更高版本,在最新版本中,更正了所有已知和通報的缺陷,但“缺陷”一節(jié)所列的除外,這類缺陷與設計無關。

JSP

JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務端的資源的應用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設計和顯示分離,支持可重用的基于組件的設計,使基于Web的應用程序的開發(fā)變得迅速和容易。

Web服務器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。JSP與Servlet一樣,是在服務器端執(zhí)行的,通常返回給客戶端就是一個HTML文本,因此客戶端只要有瀏覽器能瀏覽。JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務器在頁面被客戶端請求以后對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Servlet是JSP的技術基礎,而且大型的Web應用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術的簡單易用,完全的面向?qū)ο?#xff0c;具有平臺無關性且安全可靠,主要面向因特網(wǎng)的所有特點。JSP技術的優(yōu)點:

(1)一次編寫,到處運行。除了系統(tǒng)之外,代碼不用做任何更改。

(2)系統(tǒng)的多平臺支持。基本上可以在所有平臺上的任意環(huán)境中開發(fā),在任意環(huán)境中進行系統(tǒng)部署,在任意環(huán)境中擴展。相比ASP/.net的局限性是顯而易見的。

(3)強大的可伸縮性。從只有一個小的Jar文件就可以運行Servlet/JSP,到由多臺服務器進行集群和負載均衡,到多臺Application進行事務處理,消息處理,一臺服務器到無數(shù)臺服務器,Java顯示了一個巨大的生命力。

(4)多樣化和功能強大的開發(fā)工具支持。Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費得到,并且其中許多已經(jīng)可以順利的運行于多種平臺之下

(5)支持服務器端組件。Web應用需要強大的服務器端組件來支持,開發(fā)人員需要利用其他工具設計實現(xiàn)復雜功能的組件供Web頁面調(diào)用,以增強系統(tǒng)性能。JSP可以使用成熟的JavaBeans 組件來實現(xiàn)復雜商務功能。

內(nèi)部對象說明:request 客戶端請求,此請求會包含來自GET/POST請求的參數(shù); response 網(wǎng)頁傳回客戶端的響應;pageContext 網(wǎng)頁的屬性是在這里管理; session 與請求有關的會話; application servlet正在執(zhí)行的內(nèi)容;out 用來傳送響應的輸出流; config 代碼片段配置對象;page JSP網(wǎng)頁本身; exception 針對錯誤網(wǎng)頁,未捕捉的例外。

JavaScript

JavaScript是一種基于對象和事件驅(qū)動并具有相對安全性的客戶端腳本語言。同時也是一種廣泛用于客戶端Web開發(fā)的腳本語言,常用來給HTML網(wǎng)頁添加動態(tài)功能,比如響應用戶的各種操作。JavaScript的一個重要功能就是面向?qū)ο蟮墓δ?#xff0c;通過基于對象的程序設計,可以用更直觀、模塊化和可重復使用的方式進行程序開發(fā)。在HTML基礎上,使用JavaScript可以開發(fā)交互式Web網(wǎng)頁。JavaScript的出現(xiàn)使得網(wǎng)頁和用戶之間實現(xiàn)了一種實時性的、動態(tài)的、交互性的關系,使網(wǎng)頁包含更多活躍的元素和更加精彩的內(nèi)容。在本系統(tǒng)中很多地方使用了JavaScript技術,比如說,檢驗用戶輸入數(shù)據(jù)的有效性,是否重復,是否為空等等。

軟硬件需求

硬件需求:

CPU:Pentium以上計算機

內(nèi)存: 512M以上

軟件需求:

操作系統(tǒng)版本:Windows XP /vista/Win7

開發(fā)工具:MyEclipse

后臺服務器:Apache Tomcat 7.0

開發(fā)語言:Java

瀏覽器:IE6.0


  • 需求分析
  • 2.1 需求調(diào)研

    在項目的開始是需求調(diào)研,并且走訪了健身會所,經(jīng)過一系列的調(diào)查與談話中發(fā)現(xiàn),健身會所市場的管理和規(guī)范問題,是困擾我們多年的一個老問題,也是政府管理中的一個難點,健身的一個最基本的業(yè)務,表面上看,它只是健身會所業(yè)務的一個簡單的部分,但是它涉及到管理與客戶服務等多方面。

    2.2 可行性分析

    在項目的開發(fā)過程中,可行性分析是非常重要的一個環(huán)節(jié),它是基于技術等進行分析之后得出的一個結(jié)論,這個結(jié)論說明了這個項目是否可以繼續(xù)開展,本章從技術可行性、操作可行性、安全可行性、社會可行性等方面綜合闡述了項目的可行性。

    2.2.1技術可行性

    技術上的可行性主要是根據(jù)系統(tǒng)分析得到的需要開發(fā)的軟件,來分析利用現(xiàn)有技術是否能實現(xiàn)待開發(fā)的軟件。本系統(tǒng)需要連接到互聯(lián)網(wǎng)上,運用jsp+servlet技術開發(fā),方便快捷,開發(fā)所需要的軟件工具都是簡單易操作的且開源,安全,可維護性強,本系統(tǒng)在MyEclipse的開發(fā)環(huán)境下采用java語言編寫,Java語言具有較強的可移植性,安全性和穩(wěn)定性,可以在不同的系統(tǒng)上運行,本系統(tǒng)采用的服務器是Apache-Tomcat-7.0版本,開發(fā)技術則采用的是jsp+servlet技術。下面介紹本系統(tǒng)使用的幾種常見的技術:

    2.2.1.1 JSP技術

    JSP(Java Server Page服務器網(wǎng)頁)是從1998年開始出現(xiàn)的新技術。由Sun公司倡導,基于JavaServlet以及整個Java體系的web開發(fā)技術,并且他是由許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術標準。在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入腳本片段和JSP標記(Tag),構(gòu)成JSP網(wǎng)頁(*.jsp)。JSP技術為創(chuàng)建顯示動態(tài)生成內(nèi)容的web頁面提供了簡便的方法。JSP作為Java家族的一員,承襲了Java的特點,即跨平臺的特性,也即一次編譯,到處運行。

    對于我們現(xiàn)在的使用,JSP無疑是一種非常方便的工具,可以精確的寫出自己想要的界面效果,這也是我使用JSP技術的重要原因。

    JSP網(wǎng)站開發(fā)標準給出了兩種使用JSP的技術,可以歸納為模式一、模式二。

    模式一:JSP+JavaBeans技術。在這種模式中,JSP頁面獨自響應請求并將處理結(jié)果返回給客戶。Bean處理所有數(shù)據(jù)訪問,JSP實現(xiàn)頁面的表現(xiàn),以實現(xiàn)內(nèi)容生成與顯示相分離。當處理復雜的大型應用時,頁面被嵌入大量的腳本或Java代碼段,當需要處理的商業(yè)邏輯復雜時,這種情況會變得非常糟糕,大量的內(nèi)嵌代碼使得頁面程序變得復雜,對于前端界面設計人員,這是不可思議的事情。所以模式一可用于小型應用,不能夠滿足大型應用的需要。

    模式二:JSP+Servlet+JavaBeans技術。Servlet技術是一種采用Java技術來實現(xiàn)CGI功能的一種技術,Servlet技術非常適于服務器端的處理和編程,并且Servlet會長期駐留在內(nèi)存。

    從開發(fā)的觀點看,模式二具有更清晰的頁面表現(xiàn),清楚的開發(fā)者角色劃分,在大規(guī)模項目開發(fā)中,模式二更被采用,模式二也更符合當前流行的MVC結(jié)構(gòu)(Model/view/controller),其中Servlet對應controller,處于控制者的位置,處理HTTP請求,負責生成JSP中使用的Beans組件或?qū)ο?#xff0c;并判斷應將請求傳遞給哪個JSP等,JSP對應view,負責生成最終的動態(tài)網(wǎng)頁并返回給瀏覽器。而JavaBeans對應的是Model,實現(xiàn)各個具體的應用邏輯與功能。

    2.2.1.2 MyEclipse Enterprise Workbench 8.5

    MyEclipse企業(yè)級工作平臺(My Eclipse Enterprise Workbench,簡稱MyEclipse)是對EclipseIDE的擴展,利用它可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布,以及應用程序服務器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。

    MyEclipse 是一個十分優(yōu)秀的用于開發(fā)Java, J2EE的Eclipse插件集合,MyEclipse的功能非常強大,支持也十分廣泛,尤其是對各種開源產(chǎn)品的支持十分不錯。MyEclipse目前支持Java Servlet,AJAX,?JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC數(shù)據(jù)庫鏈接工具等多項功能。可以說MyEclipse幾乎囊括了目前所有主流開源產(chǎn)品的專屬Eclipse開發(fā)工具。

    2.2.1.3 SQLServer2005

    SQLServer2005最初的開發(fā)者的意圖是用SQLServer2005和他們自己的快速低級例程(ISAM)去連接表格。不管怎樣,在經(jīng)過一些測試后,開發(fā)者得出結(jié)論:SQLServer2005并沒有他們需要的那么快和靈活。這導致了一個使用幾乎和SQLServer2005一樣的API接口的用于他們的數(shù)據(jù)庫的新的SQL接口的產(chǎn)生,這樣,這個API被設計成允許為用于SQLServer2005而寫的第三方代碼更容易移植到SQLServer2005。

    Microsoft SQL Server 2005 是一個全面的數(shù)據(jù)庫平臺,使用集成的商業(yè)智能 (BI)工具提供了企業(yè)級的數(shù)據(jù)管理。Microsoft SQL Server 2005數(shù)據(jù)庫引擎為關系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲功能,使您可以構(gòu)建和管理用于業(yè)務的高可用和高性能的數(shù)據(jù)應用程序。

    2.2.1.4 JDBC技術

    JDBC技術是Java Data Base Connectivity的縮寫,它是SUN公司提供的一種支持基本SQL功能的通用的應用程序接口(Application Programming Interface)。它是一種用于執(zhí)行SQL語句的Java API,可以為多種關系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/數(shù)據(jù)庫開發(fā)人員提供了一個標準的API,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純 Java API 編寫數(shù)據(jù)庫應用程序,同時,JDBC也是個商標名。通過執(zhí)行相應SQL語句,完成對不同數(shù)據(jù)庫的訪問。因此,開發(fā)人員使用JDBC API可以不必編寫一個應用程序來訪問Sybase數(shù)據(jù)庫,又另外編寫一個應用程序去訪問Oracle數(shù)據(jù)庫,再寫一個應用程序訪問Microsoft的SQL Server。不但如此,使用Java語言編寫的應用程序可以在任何支持Java的平臺上運行,不必在不同的平臺上開發(fā)不同的應用程序。

    簡單地說,JDBC能完成下列三件事:

  • 同一個數(shù)據(jù)庫建立連接;
  • 向數(shù)據(jù)庫建立連接;
  • 處理數(shù)據(jù)庫返回的結(jié)果。
  • JDBC是一種通用低層的應用程序編程接口,它在不同的數(shù)據(jù)庫功能模塊的層次上提供一個統(tǒng)一的用戶界面。說JDBC是一處低級的API,是指它直接調(diào)用SQL命令,它比其他的一些數(shù)據(jù)庫連接API要容易使用些,但它有同樣可以作為更高級的,用戶版面更友好的API或開發(fā)工具基礎。

    瀏覽器端程序要訪問數(shù)據(jù)庫,首先通過中間件,然后由中間件對數(shù)據(jù)庫操作權(quán)限進行認證,認證通過才能對數(shù)據(jù)庫進行操作,數(shù)據(jù)庫訪問的三層結(jié)構(gòu)如圖2-1所示。

    圖2-1 數(shù)據(jù)庫訪問三層結(jié)構(gòu)

    用戶對數(shù)據(jù)庫的存取權(quán)限認證是中間件中完成,對數(shù)據(jù)庫的查詢、插入、更新和刪除操作等都封裝在中間件中,該中間件位于服務器端,中間件對數(shù)據(jù)庫進行操作后,再將處理結(jié)果通過Web服務器返回到瀏覽器端用戶。這樣,在用戶端輸入的用戶名和密碼,可以通過加密算法進行加密后在網(wǎng)絡上傳輸,在中間件中進行解密認證,然后再進行數(shù)據(jù)庫的存取操作,數(shù)據(jù)庫存取權(quán)限的用戶名和密碼出現(xiàn)在位于服務器端的中間件中,這樣就更加安全。本系統(tǒng)采用的正是這樣的三層結(jié)構(gòu)的數(shù)據(jù)庫訪問模式。

    在三層模型中,命令將被發(fā)送到服務的“中間層”,而“中間層”將SQL語句發(fā)送到數(shù)據(jù)庫。數(shù)據(jù)庫處理SQL語句并將結(jié)果返回“中間層”,然后“中間層”將它們返回用戶。其模型如圖2-2所示。

    圖2-2 JDBC的三層模型

    因為“中間層”可以進行對訪問的控制并協(xié)同數(shù)據(jù)庫的更新,并且可以使用一個易用的高層API,這個API可以由“中間層”進行轉(zhuǎn)換,轉(zhuǎn)換成低層的調(diào)用。所以在許多種情況下,三層模型可以提供更好的性能,本系統(tǒng)中所采用的就是此種模型。

    簡單地說,JDBC 可以做三件事:與數(shù)據(jù)庫建立連接,發(fā)送SQL語句并且獲得數(shù)據(jù),最后根據(jù)得到的數(shù)據(jù)進行處理。

    數(shù)據(jù)庫連接如圖2-3所示:

    圖2-3 數(shù)據(jù)庫的連接處理

    在建立數(shù)據(jù)連接時,要判斷連接是否建立成功了,如果沒有建立成功,要進行異常的捕捉等的錯誤處理,如果連接建立起來了,那么就繼續(xù)進行。得到數(shù)據(jù)庫連接后,就要執(zhí)行事先寫好的SQL語句,通常可以用預編譯命令,防止SQL注入,在執(zhí)行時,如果SQL語句出現(xiàn)錯誤,也要進行異常的捕捉和處理,如果SQL語句正確,則成功之后就會返回ResultSet這個結(jié)果集,我們可以對其進行一些操作。

    2.2.1.5 B/S模式

    B/S模式是一種以Web技術為基礎的新型的MIS系統(tǒng)平臺模式。把傳統(tǒng)C/S模式中的服務器部分分解為一個數(shù)據(jù)服務器與一個或多個應用服務器(Web服務器),從而構(gòu)成一個三層結(jié)構(gòu)的客戶服務器體系。

    第一層客戶機是用戶與整個系統(tǒng)的接口。客戶的應用程序精簡到一個通用的瀏覽器軟件,如Netscape Navigator,微軟公司的IE等。瀏覽器將HTML代碼轉(zhuǎn)化成圖文并茂的網(wǎng)頁。網(wǎng)頁還具備一定的交互功能,允許用戶在網(wǎng)頁提供的申請表上輸入信息提交給后臺,并提出處理請求。這個后臺就是第二層的Web服務器。

    第二層Web服務器將啟動相應的進程來響應這一請求,并動態(tài)生成一串HTML代碼,其中嵌入處理的結(jié)果,返回給客戶機的瀏覽器。如果客戶機提交的請求包括數(shù)據(jù)的存取,Web服務器還需與數(shù)據(jù)庫服務器協(xié)同完成這一處理工作。

    第三層數(shù)據(jù)庫服務器的任務類似于C/S模式,負責協(xié)調(diào)不同的Web服務器發(fā)出的SQL請求,管理數(shù)據(jù)庫。

    它無需像C/S模式那樣在不同的客戶機上安裝不同的客戶應用程序,而只需安裝通用的瀏覽器軟件。這樣不但可以節(jié)省客戶機的硬盤空間與內(nèi)存,而且使安裝過程更加簡便、網(wǎng)絡結(jié)構(gòu)更加靈活。假設一個企業(yè)的決策層要開一個討論庫存問題的會議,他們只需從會議室的計算機上直接通過瀏覽器查詢數(shù)據(jù),然后顯示給大家看就可以了。甚至與會者還可以把筆記本電腦聯(lián)上會議室的網(wǎng)絡插口,自己來查詢相關的數(shù)據(jù)。其次,它簡化了系統(tǒng)的開發(fā)和維護。系統(tǒng)的開發(fā)者無須再為不同級別的用戶設計開發(fā)不同的客戶應用程序了,只需把所有的功能都實現(xiàn)在Web服務器上,并就不同的功能為各個組別的用戶設置權(quán)限就可以了。各個用戶通過HTTP請求在權(quán)限范圍內(nèi)調(diào)用Web服務器上不同處理程序,從而完成對數(shù)據(jù)的查詢或修改。現(xiàn)代企業(yè)面臨著日新月異的競爭環(huán)境,對企業(yè)內(nèi)部運作機制的更新與調(diào)整也變得逐漸頻繁。相對于C/S,B/S的維護具有更大的靈活性。當形勢變化時,它無須再為每一個現(xiàn)有的客戶應用程序升級,而只需對Web服務器上的服務處理程序進行修訂。這樣不但可以提高公司的運作效率,還省去了維護時協(xié)調(diào)工作的不少麻煩。如果一個公司有上千臺客戶機,并且分布在不同的地點,那么便于維護將會顯得更加重要。

    再次,它使用戶的操作變得更簡單。對于C/S模式,客戶應用程序有自己特定的規(guī)格,使用者需要接受專門培訓。而采用B/S模式時,客戶端只是一個簡單易用的瀏覽器軟件。無論是決策層還是操作層的人員都無需培訓,就可以直接使用。B/S模式的這種特點,可以讓MIS系統(tǒng)維護的限制因素變得更少。

    最后,B/S特別適用于網(wǎng)上信息發(fā)布,使得傳統(tǒng)的MIS的功能有所擴展。這是C/S所無法實現(xiàn)的。而這種新增的網(wǎng)上信息發(fā)布功能恰是現(xiàn)代企業(yè)所需的。這使得企業(yè)的大部分書面文件可以被電子文件取代,從而提高了企業(yè)的工作效率,使企業(yè)行政手續(xù)簡化,節(jié)省人力物力。

    現(xiàn)有的硬件和軟件在功能上是可以滿足系統(tǒng)開發(fā)的需求,開發(fā)所需要的軟件工具也都是簡單易操作的,開發(fā)人員的技術水平完全可以勝任系統(tǒng)的開發(fā)。所以該系統(tǒng)在技術上是可行的。

    2.2.1.6 EL技術

    EL全名為Expression Language,它原本是JSTL 1.0為方便存取數(shù)據(jù)所自定義的語言。

    表達式這種語言的靈感來自于ECMAScript和XPath表達式語言,它的格式為${express},它提供了在 JSP 中簡化表達式的方法。它是一種比較簡單的語言,基于可用的命名空間(PageContext 屬性)、嵌套屬性和對集合、操作符(算術型、關系型和邏輯型)的訪問符、映射到 Java 類中靜態(tài)方法的可擴展函數(shù)以及一組隱式對象。
    EL 提供了在 JSP 腳本編制元素范圍外使用運行時表達式的功能。腳本編制元素是指頁面中能夠用于在 JSP 文件中嵌入 Java 代碼的元素。它們通常用于對象操作以及執(zhí)行那些影響所生成內(nèi)容的計算。JSP 2.0 將 EL 表達式添加為一種腳本編制元素。

    2.2.2 操作可行性

    該系統(tǒng)具有易用性,B/S結(jié)構(gòu)使得客戶端不必安裝任何軟件,只要有瀏覽器并連接到Internet或企業(yè)內(nèi)部的Intranet上即可使用,免除了非專業(yè)人員操作技術上的困難。服務器操作系統(tǒng)采用Windows 7,Web服務器為Apache-Tomcat7.0版本,數(shù)據(jù)庫為MySQL。

    該系統(tǒng)具有友好親切的使用界面,功能豐富并且使用簡單,一般用戶無需培訓即可使用,對運行的平臺和機器配置要求不高,便于配置和應用。

    2.2.3 社會可行性

    隨著社會的發(fā)展和計算機技術的進步,人類越來越依賴于信息化的管理系統(tǒng),這種系統(tǒng)能更加方便的獲得信息以及處理信息。人們都改變了過去的思維,開始走向了互聯(lián)網(wǎng)的時代,在社會中成為了一種新的潮流。

    2.2.4 可行性小結(jié)

    本章在技術可行性上、操作可行性上以及社會可行性上進行了詳細的介紹,在技術方面通過介紹JSP技術和EL技術等常見技術,說明了開發(fā)本系統(tǒng)的可行性,而在操作方面,也是利用了簡單易于操作的平臺和數(shù)據(jù)庫,所以開發(fā)本系統(tǒng)是簡單而快速的。經(jīng)以上分析,說明該系統(tǒng)在開發(fā)上是可行的,在技術、操作和社會上都有可行性,可以進行開發(fā)。

    2.3 功能模塊需求分析

    本系統(tǒng)最大的特點是使用操作簡單、友好的提示信息。

    會員制健身中心管理系統(tǒng)的設計與實現(xiàn),主要是以提高健身會所形象、便捷客戶服務與增強健身中心管理為主旨,主要有以下七大功能:

    1、修改登錄密碼;

    2、工作人員管理;

    3、會員卡類型管理;

    4、會員資料管理;

    5、健身器材管理;

    6、教練執(zhí)教管理;

    7、安全退出。

    2.4 界面需求

    界面設計目前已經(jīng)成為評價軟件質(zhì)量的一條重要指標,一個好的用戶界面可以增加用戶使用系統(tǒng)的信心和興趣,提高工作效率,JSP技術是用JAVA語言作為腳本語言的,JSP網(wǎng)頁為整個服務器端的JAVA庫單元提供了一個接口來服務于HTTP的應用程序。 創(chuàng)建動態(tài)頁面非常方便。用戶界面是指軟件系統(tǒng)與用戶交互的接口,通常包括輸出、輸入、人-機對話的界面格式等。

    1.輸出設計

    輸出是由計算機對輸入的原始信息進行加工處理,形成高質(zhì)量的有效信息,并使之具有一定的格式,提供管理者使用,這是輸出設計的主要職責和目標。

    系統(tǒng)設計的過程正好和實施過程相反,并不是從輸入設計到輸出設計,而是從輸出設計到輸入設計,這是因為輸出表格直接與使用者相聯(lián)系,設計的出發(fā)點應當是保證輸出表格方便地為使用者服務,正確及時反映和組成用于各部門的有用信息。輸出設計的原則是考慮既要全面反映不同管理層的各項需要,又要言簡意賅,不要將用戶需要和不需要的都提供給用戶。

    2.輸入設計

    輸入數(shù)據(jù)的收集和錄入是比較費事的,需要大量的人力和一定設備,并且容易出錯。如果輸入系統(tǒng)的數(shù)據(jù)有錯誤,則處理后的輸出將擴大這些錯誤,因此輸入數(shù)據(jù)的正確性對于整個系統(tǒng)質(zhì)量的好壞是具有決定性意義的。

    輸入設計的原則如下:

    輸入量應保持在能滿足處理要求的最低限度。設計中可采用設置字段初值,下拉式數(shù)據(jù)窗口等方式盡量減少用戶鍵盤輸入量。輸入量越少,錯誤率就越少,數(shù)據(jù)準備時間也減少。


    第三章 系統(tǒng)分析與設計

    3.1 數(shù)據(jù)庫的分析與設計

    計算機信息系 統(tǒng)以數(shù)據(jù)庫為核心,在數(shù)據(jù)庫管理系統(tǒng)的支持下,進行信息的收集、整理、存儲、檢索、更新、加工、統(tǒng)計和傳播等操作。數(shù)據(jù)庫已經(jīng)成為現(xiàn)在信息系統(tǒng)等計算機系統(tǒng)的基礎與核心部分。數(shù)據(jù)庫設計的好壞直接影響到整個系統(tǒng)的質(zhì)量和效率。

    數(shù)據(jù)庫的設計一般經(jīng)過規(guī)劃。需求分析、概念設計、邏輯設計、物理設計5個步驟。

    3.1.1數(shù)據(jù)庫的概念結(jié)構(gòu)設計

    概念設計是指在數(shù)據(jù)分析的基礎上自底向上的建立整個系統(tǒng)的數(shù)據(jù)庫概念結(jié)構(gòu),從用戶的角度進行視圖設計,然后將視圖集成,最后對集成的結(jié)構(gòu)分析優(yōu)化得到最后結(jié)果。

    數(shù)據(jù)庫的概念結(jié)構(gòu)設計采用實體—聯(lián)系(E-R)模型設計方法。E-R模型法的組成元素有:實體、屬性、聯(lián)系,E-R模型用E-R圖表示,是提示用戶工作環(huán)境中所涉及的事物,屬性則是對實體特性的描述。

    概念設計的目標是產(chǎn)生反映企業(yè)組織信息要求的數(shù)據(jù)庫概念結(jié)構(gòu),即概念模式。概念模式是獨立于數(shù)據(jù)庫邏輯結(jié)構(gòu),獨立于支持數(shù)據(jù)庫的DBMS,不依賴于計算機系統(tǒng)的,根據(jù)以上對數(shù)據(jù)庫的需求分析,并結(jié)合系統(tǒng)概念模型的特點及建立方法,建立E-R模型圖。

    實體間關系

    屬性

    實體

    圖3-1 E-R圖各元素

  • 系統(tǒng)模塊E-R圖,如圖3-2所示:
  • 圖3-2 系統(tǒng)模塊E-R圖

    2)會員資料實體E-R圖,如圖3-3所示:

    圖3-3 會員資料實體E-R圖

    3.1.2數(shù)據(jù)庫的邏輯結(jié)構(gòu)設計

    我們知道,數(shù)據(jù)庫概念模型獨立于任何特定的數(shù)據(jù)庫管理系統(tǒng),因此,需要根據(jù)具體使用的數(shù)據(jù)庫管理系統(tǒng)的特點進行轉(zhuǎn)換。即轉(zhuǎn)化為按計算機觀點處理的邏輯關系模型,E-R模型向關系數(shù)據(jù)庫模型轉(zhuǎn)換應遵循下列原則:

    *每一個實體要轉(zhuǎn)換成一個關系

    *所有的主鍵必須定義非空(NOT NULL)

    *對于二元聯(lián)系應按照一對多、弱對實、一對一、多對多等聯(lián)系來定義外鍵。

    根據(jù)E-R模型,會員制健身中心管理系統(tǒng)建立了以下邏輯數(shù)據(jù)結(jié)構(gòu),下面是各數(shù)據(jù)表的詳細說明。

    本系統(tǒng)的數(shù)據(jù)庫名:db_jianshen2017_g,一共有四個表,分別如下:

    序號列名數(shù)據(jù)類型長度小數(shù)位標識主鍵外鍵允許空默認值說明
    1card_idint11
    2card_leixiongvarchar50
    3card_guizetext
    4card_youhuizhengcetext
    5card_one1varchar50
    6card_one2varchar50
    7card_one3varchar50
    8card_one4varchar50
    9card_one5int11
    10card_one6int11
    11card_one7datetime
    12card_one8datetime

    表3-1 會員卡信息表

    序號列名數(shù)據(jù)類型長度小數(shù)位標識主鍵外鍵允許空默認值說明
    1qicai_idint11
    2qicai_namevarchar50
    3qicai_goumairiqivarchar50
    4qicai_beizhutext
    5qicai_one1varchar50
    6qicai_one2varchar50
    7qicai_one3varchar50
    8qicai_one4varchar50
    9qicai_one5int11
    10qicai_one6int11
    11qicai_one7datetime
    12qicai_one8datetime

    表3-2 健身器材表

    序號列名數(shù)據(jù)類型長度小數(shù)位標識主鍵外鍵允許空默認值說明
    1user_idint11
    2user_namevarchar50
    3user_pwvarchar50
    4user_typeint11
    5user_realnamevarchar50
    6user_addressvarchar50
    7user_sexvarchar50
    8user_telvarchar50
    9user_emailvarchar50
    10user_qqvarchar50
    11user_manvarchar50
    12user_agevarchar50
    13user_birthdayvarchar50
    14user_xuelivarchar50
    15user_one1varchar50
    16user_one2varchar50
    17user_one3varchar50
    18user_one4varchar50
    19user_one5varchar50
    20user_one6int11
    21user_one7int11
    22user_one8int11
    23user_one9datetime
    24user_one10datetime
    25user_one11bigint20
    26user_one12bigint20

    表3-3 工作人員表

    序號列名數(shù)據(jù)類型長度小數(shù)位標識主鍵外鍵允許空默認值說明
    1zhijiao_idint11
    2zhijiao_jiaolian_idint11
    3zhijiao_jiaolian_namevarchar50
    4zhijiao_kechengvarchar50
    5zhijiao_huiyuanvarchar50
    6zhijiao_one1varchar50
    7zhijiao_one2varchar50
    8zhijiao_one3varchar50
    9zhijiao_one4varchar50
    10zhijiao_one5int11
    11zhijiao_one6int11
    12zhijiao_one7datetime
    13zhijiao_one8datetime

    表3-4 教練執(zhí)教表

    3.1.3 數(shù)據(jù)庫的連接原理

    本系統(tǒng)采用Hibernate對數(shù)據(jù)庫進行管理。Hibernate 是一個開放源代碼的對象關系映射框架,它對 JDBC 進行了輕量級的對象封裝,使 Java 程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。它不僅提供了從 Java 類到數(shù)據(jù)表之間的映射,也提供了數(shù)據(jù)查詢和恢復機制。相對于使用 JDBC 和 SQL 來手工操作數(shù)據(jù)庫,Hibernate 可以大大減少操作數(shù)據(jù)庫的工作量。 另外 Hibernate 可以利用代理模式來簡化載入類的過程,這將大大減少利用 Hibernate QL 從數(shù)據(jù)庫提取數(shù)據(jù)的代碼的編寫量,從而節(jié)約開發(fā)時間和開發(fā)成本。 Hibernate 可以和多種Web 服務器或者應用服務器良好集成,如今已經(jīng)支持幾乎所有的流行的數(shù)據(jù)庫服務器。

    Hibernate 技術本質(zhì)上是一個提供數(shù)據(jù)庫服務的中間件。它的架構(gòu)如圖3-5所示:

    圖3-3 Hibernatre架構(gòu)圖

    圖3-3顯示了 Hibernate 的工作原理,它是利用數(shù)據(jù)庫以及其他一些配置文件如 Hibernate .properties ,XML Mapping 等來為應用程序提供數(shù)據(jù)持久化服務的。

    Hibernate 具有很大的靈活性,但同時它的體系結(jié)構(gòu)比較復雜,提供了好幾種不同的運行方式。在輕型體系中,應用程序提供 JDBC 連接,并且自行管理事務,這種方式使用了 Hibernate 的一個最小子集;在全面解決體系中,對于應用程序來說,所有底層的 JDBC/JTA API 都被抽象了,Hibernate 會替你照管所有的細節(jié)。

    3.2中文亂碼問題處理

    在程序中經(jīng)常會遇到中文亂碼的情況,如果手動的在servlet和jsp頁面進行設置,相當麻煩。因此,在程序的開始就寫了一個過濾器SetCharacterEncodingFilter。

    在web.xml中配置:

    <filter>

    <filter-name>SetCharacterEncodingFilter</filter-name>

    <filter-class>myweb.util.filter.SetCharacterEncodingFilter</filter-class>

    <init-param>

    <param-name>encoding</param-name>

    <param-value>gb2312</param-value>

    </init-param></filter>

    <filter-mapping>

    <filter-name>SetCharacterEncodingFilter</filter-name>

    <url-pattern>/*</url-pattern>//*表示工程下所有的頁面都會有此過濾器的處理

    </filter-mapping>

    對應的SetCharacterEncodingFilter.java文件中的重要代碼,在初始化init()方法中定義:

    public?void?init(FilterConfig filterConfig)?throws?ServletException {

    this.filterConfig = filterConfig;

    this.encoding = filterConfig.getInitParameter("encoding");

    String value = filterConfig.getInitParameter("ignore");

    }

    在工具包util包中同樣定義了DataFormate類來處理字符轉(zhuǎn)換:

    public?static?String toUni(String gbStr){

    String uniStr = ""; /*把字符串轉(zhuǎn)換成uincode編碼*/

    if(gbStr ==?null){

    gbStr = "";

    }

    try{

    byte[] tempByte = gbStr.getBytes("GB2312");

    uniStr =?new?String(tempByte,"ISO8859_1");

    }catch(Exception ex){

    }

    return?uniStr;

    }

    /* 把字符串轉(zhuǎn)換成Utf8編碼*/

    public?static?String toUtf8String(String s) {

    StringBuffer sb =?new?StringBuffer();

    for?(int?i = 0; i < s.length(); i++) {

    char?c = s.charAt(i);

    if?(c >= 0 && c <= 255) {

    sb.append(c);

    }

    else?{

    byte[] b;

    try?{

    b = Character.toString(c).getBytes("utf-8");

    }catch?(Exception ex) {

    System.out.println(ex);b =?new?byte[0];

    }

    for?(int?j = 0; j < b.length; j++) {

    int?k = b[j];

    if?(k < 0) {

    k += 256;

    }

    sb.append("%" + Integer.toHexString(k).

    toUpperCase()); } }

    return?sb.toString(); }


    第四章 系統(tǒng)功能實現(xiàn)

    在管理信息系統(tǒng)的生命周期中,經(jīng)過了需求分析、系統(tǒng)設計等階段之后,便開始了系統(tǒng)實施階段。在系統(tǒng)分析和設計階段,系統(tǒng)開發(fā)工作主要是集中在邏輯、功能和技術設計上,系統(tǒng)實施階段要繼承此前面各個階段的工作成果,將技術設計轉(zhuǎn)化為物理實現(xiàn),因此系統(tǒng)實施的成果是系統(tǒng)分析和設計階段的結(jié)晶。

    4.1系統(tǒng)登陸頁面實現(xiàn)

  • 描述:為了保證系統(tǒng)的安全性,要先使用本系統(tǒng)必須先登陸到系統(tǒng)中,用戶需要正確的賬號和密碼登錄本系統(tǒng)。
  • 2.會員登錄的流程圖,如圖4-1所示:

    圖4-1 會員登錄的流程圖

    3.程序運行效果圖,如圖4-2所示:

    圖4-2 系統(tǒng)登陸頁面設計

    4.在登陸頁面輸入用戶名和密碼以,點擊提交按鈕,跳轉(zhuǎn)到登陸的service中,在該service中會對用戶名,密碼,驗證碼進行判斷,驗證通過進入對應的頁面,loginservice關鍵代碼:

    public?String login(String userName,String userPw,int?userType)

    {

    String result="no";

    String sql="from TAdmin where userName=? and userPw=?";

    Object[] con={userName,userPw};

    List adminList=adminDAO.getHibernateTemplate().find(sql,con);

    if(adminList.size()==0)

    {

    result="no";

    }

    else

    {

    WebContext ctx = WebContextFactory.get();

    HttpSession session=ctx.getSession();

    TAdmin admin=(TAdmin)adminList.get(0);

    session.setAttribute("userType", 0);

    session.setAttribute("admin", admin);

    result="yes";

    }

    return?result;

    }

    4.2 管理員功能模塊

    1.描述:系統(tǒng)主頁面:左方頁面展示了管理員可操作的七大功能,進入相關的管理頁面可以鏈接到子菜單,并且高亮顯示,每個管理模塊下面都有相應的子菜單。

    2.程序運行效果圖,如圖4-3所示:

    圖4-3 管理員主頁面

    在每個jsp頁面將會對相關用戶進行攔截操作,這樣可以提高安全性,防止用戶不經(jīng)過登陸頁面而進入任何子菜單頁面:

    if(session.getAttribute("user")==null)

    {

    out.print("<script>alert('請先登錄!');window.open('../index.jsp','_self')</script>");

    }

    4.2.1 工作人員管理

    4.2.1.1查詢工作人員信息

    1.描述:管理員點擊左側(cè)的菜單“工作人員管理”,頁面跳轉(zhuǎn)到工作人員界面,調(diào)用后臺的action類查詢出所有的工作人員信息,并把這些信息封裝到數(shù)據(jù)集合List中,綁定到request對象,然后頁面跳轉(zhuǎn)到相應的jsp,顯示出工作人員信息。

    2.程序效果圖,如圖4-4所示:

    圖4-4工作人員信息

    4.2.1.2添加工作人員添加

    1.描述:輸入要添加工作人員的信息以后,點擊添加按鈕添加工作人員。

    2.程序效果圖,如圖4-5所示:

    圖4-5添加工作人員

    4.2.2會員資料管理

    4.2.2.1會員資料管理

    1.描述:管理員點擊左側(cè)的菜單“會員資料管理”,頁面跳轉(zhuǎn)到會員資料管理界面,調(diào)用后臺的action類查詢出所有的會員資料,并把這些信息封裝到數(shù)據(jù)集合List中,綁定到request對象,然后頁面跳轉(zhuǎn)到相應的jsp,顯示出會員資料。

    2.程序效果圖,如圖4-6所示:

    圖4-6會員資料管理

    4.2.2.2會員資料刪除

    1.描述:先是點擊會員管理,頁面跳轉(zhuǎn)到會員管理界面,瀏覽所有的會員資料,點擊要刪除的會員資料,彈出的確定對話框,即可刪除該會員資料。

    2.程序效果圖,如圖4-7所示:

    圖4-7會員資料刪除

    4.2.3健身器材管理

    4.2.3.1健身器材信息

    1.描述:管理員點擊左側(cè)的菜單“健身器材管理”,頁面跳轉(zhuǎn)到健身器材信息管理界面,調(diào)用后臺的action類查詢出所有的健身器材信息,并把這些信息封裝到數(shù)據(jù)集合List中,綁定到request對象,然后頁面跳轉(zhuǎn)到相應的jsp,顯示出健身器材信息。

    2.程序效果圖如圖4-8所示:

    圖4-8查詢健身器材信息

    4.2.3.2添加健身器材信息

    1.描述:管理員輸入健身器材相關正確信息后點擊錄入按鈕,如果是沒有輸入完整的健身器材信息,都會給出相應的錯誤提示,不能錄入成功。輸入數(shù)據(jù)都通過form表單中定義的方法οnsubmit="return checkForm()"來檢查,checkForm()函數(shù)中是各種的校驗輸入數(shù)據(jù)的方式。

    2.程序效果圖,如圖4-9所示:

    圖4-9添加健身器材信息

    4.2.3.3刪除健身器材信息

    1.描述:先是點擊健身器材信息管理,頁面跳轉(zhuǎn)到健身器材信息管理界面,瀏覽所有的健身器材信息,點擊要刪除的健身器材信息,彈出的確定對話框,即可刪除該健身器材信息。

    2.程序效果圖,如圖4-10所示:

    圖4-10刪除健身器材信息

    4.2.4 教練執(zhí)教管理

    4.2.4.1教練執(zhí)教管理

    1.描述:管理員點擊左側(cè)的菜單“教練執(zhí)教管理”,頁面跳轉(zhuǎn)到教練執(zhí)教管理界面,調(diào)用后臺的action類查詢出所有的教練執(zhí)教,并把這些信息封裝到數(shù)據(jù)集合List中,綁定到request對象,然后頁面跳轉(zhuǎn)到相應的jsp,顯示出教練執(zhí)教情況。

    2.程序效果圖,如圖4-11所示:

    圖4-11教練執(zhí)教管理頁面

    4.2.5.2教練執(zhí)教錄入

    1.描述:管理員輸入教練相關正確信息后點擊錄入按鈕,如果是沒有輸入完整的教練執(zhí)教,都會給出相應的錯誤提示,不能錄入成功。輸入數(shù)據(jù)都通過form表單中定義的方法οnsubmit="return checkForm()"來檢查,checkForm()函數(shù)中是各種的校驗輸入數(shù)據(jù)的方式。

    2.程序效果圖,如圖4-12所示:

    圖4-12 教練執(zhí)教錄入

    4.2.6 修改密碼

    1.描述:輸入用戶名和用戶的原有密碼,輸入新密碼以后點擊修改按鈕即可修改密碼成功。

    2.程序效果圖,如圖4-13所示:

    圖4-13 修改密碼

    4.2.7 退出系統(tǒng)

    1.描述:點此按鈕回到系統(tǒng)的主頁面。

    2.關鍵代碼:主要是通過javascript語句來實現(xiàn), item_word[8][4]="退出系統(tǒng)";

    item_link[8][4]="javascript:window.open('../index.jsp','_self')";


    第五章 系統(tǒng)測試

    軟件測試指的是一種用來鑒定軟件是否正確、完整的過程。我們通過測試已經(jīng)寫好的程序來發(fā)現(xiàn)其中可能隱藏的問題,從而提高軟件的質(zhì)量,一般而言我們的做法是,在規(guī)定的條件下對程序進行操作,發(fā)現(xiàn)程序的錯誤,來衡量軟件的質(zhì)量。

    5.1 測試的任務及目標

    軟件測試不僅是軟件開發(fā)的一個組成部分,更是非常重要的一部分,在開發(fā)過程中,測試應該貫穿我們的整個開發(fā),測試在軟件開發(fā)中的地位是不言而喻的,它和軟件開發(fā)缺一不可,所以我們要更加重視測試。

    5.1.1 測試的任務

    在軟件開發(fā)中,我們不可避免的產(chǎn)生許多錯誤,這使得軟件中隱藏著許多的問題,而這些問題在一定的條件下被觸發(fā),便會讓你更軟件的運行出現(xiàn)差錯,導致或多或少的經(jīng)濟損失,所以測試是非常必要的。因此在軟件投入生產(chǎn)性運行之前,盡可能多地發(fā)現(xiàn)軟件中的錯誤。

    5.1.2 測試的目標

    (1)測試的目的是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。

    (2)好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案。

    (3)成功的測試是發(fā)現(xiàn)了到今為止尚未發(fā)現(xiàn)的的錯誤的測試。

    5.2 測試方案

    測試有兩種方法:黑盒測試和白盒測試。

    黑盒測試是一種看不到程序內(nèi)部結(jié)構(gòu)的測試方法,它又被稱為功能測試,在程序的借口進行測試,檢查功能是否能夠按照說明書進行正確的反應,程序員要做的就是輸入數(shù)據(jù),然后驗證得到的結(jié)果是否正確,這樣能夠保持外部新的完整性。白盒測試又叫結(jié)構(gòu)測試,完全了解程序的結(jié)構(gòu)和處理過程,這種方法按照程序內(nèi)部的邏輯測試程序,檢驗程序中每條通路是否都能按照預定要求正確工作。

    5.3 測試過程

    在測試之初,由于將數(shù)據(jù)庫中的數(shù)據(jù)是隨便輸入,沒有實用性,為了使系統(tǒng)更加完善,在系統(tǒng)測試的過程中,本系統(tǒng)將一開始編程隨便輸入的數(shù)據(jù)全部清理后,輸入了一些有效的測試數(shù)據(jù),這樣可以更真實的反映系統(tǒng)的功能實現(xiàn)情況。

    這樣不斷發(fā)現(xiàn)問題,經(jīng)過反復的測試、調(diào)試,把問題一個個的解決,最終系統(tǒng)可以正常運行。

    5.4 測試用例

    測試是軟件開發(fā)時期的最后一個階段,也是軟件質(zhì)量保證中至關重要的一個環(huán)節(jié),它的目的是發(fā)現(xiàn)程序的錯誤和不足之處。

    本系統(tǒng)采用黑盒測試中的等價類法,對系統(tǒng)進行測試。檢測失物招領系統(tǒng)有問題需要大量的輸入數(shù)據(jù),下面只列出一部分測試用例:

    5.4.1 主頁面的登錄模塊測試

    測試流程: 1.打開系統(tǒng)首頁,輸入錯誤的登錄信息

    2.登錄

    3.輸入正確的登錄信息

    4.登錄

    5.測試結(jié)果

    模塊名稱測試用例預期結(jié)果實際結(jié)果是否通過
    登錄模塊用戶名:null 密碼:null彈出錯誤提示,請輸入用戶名登陸失敗,提示請輸入用戶名通過
    登錄模塊用戶名:m1 密碼:null彈出錯誤提示,請輸入密碼失敗,提示輸入密碼通過
    登錄模塊用戶名:m1 密碼:1彈出錯誤提示,用戶名或者密碼錯誤登陸失敗,提示用戶名或者密碼錯誤通過

    表5-1 主頁面登錄模塊測試


    5.4.2 游客注冊測試

    建立有效等價類是游客輸入的各個信息都正確,期望結(jié)果:注冊成功!無效等價類如表5-2所示:

    無效等價類期望結(jié)果
    用戶名空缺請輸入用戶名!
    用戶密碼空缺確認密碼空缺請輸入用戶密碼!請輸入確認密碼!
    聯(lián)系電話空缺請輸入聯(lián)系電話!
    QQ空缺請輸入QQ!
    郵箱空缺請輸入郵箱地址!
    來自空缺請輸入來自哪里!
    名稱空缺用戶名已存在!
    密碼錯誤兩次輸入的密碼不一致!
    聯(lián)系電話格式不正確輸入的聯(lián)系電話格式不正確!
    QQ格式不正確輸入的QQ格式不正確!
    郵箱格式不正確輸入的郵箱格式不正確!

    表5-2 游客注冊無效等價類

    測試用例:

    第1組:用戶名:bb 用戶密碼:aa

    確認密碼:aa 聯(lián)系電話:18234086882

    QQ:1104014730 E-mail:1104014730@qq.com

    來自:山西

    測試結(jié)果:提示注冊成功!

    第2組:用戶名: 用戶密碼:aa

    確認密碼:aa 聯(lián)系電話:18234086882

    QQ:1104014730 E-mail:1104014730@qq.com

    來自:山西

    測試結(jié)果:請輸入用戶名!

    第3組:用戶名:bb 用戶密碼:

    確認密碼:aa 聯(lián)系電話:18234086882

    QQ:1104014730 E-mail:1104014730@qq.com

    來自:山西

    測試結(jié)果:請輸入用戶密碼!

    第4組:用戶名:bb 用戶密碼:aa

    確認密碼: 聯(lián)系電話:18234086882

    QQ:1104014730 E-mail:1104014730@qq.com

    來自:山西

    測試結(jié)果:請輸入確認密碼!

    第5組:用戶名:bb 用戶密碼:aa

    確認密碼:aa 聯(lián)系電話:18234086882

    QQ: E-mail:1104014730@qq.com

    來自:山西

    測試結(jié)果:請輸入QQ!

    第6組:用戶名:bb 用戶密碼:aa

    確認密碼:aa 聯(lián)系電話:18234086882

    QQ:1104014730 E-mail:

    來自:山西

    測試結(jié)果:請輸入郵箱地址!

    第7組:用戶名:bb 用戶密碼:aa

    確認密碼:aa 聯(lián)系電話:18234086882

    QQ:1104014730 E-mail:1104014730@qq.com

    來自:

    測試結(jié)果:請輸入來自哪里!

    第8組:用戶名:admin 用戶密碼:aa

    確認密碼:aa 聯(lián)系電話:18234086882

    QQ:1104014730 E-mail:1104014730@qq.com

    來自:山西

    測試結(jié)果:用戶名已存在!

    第9組:用戶名:admin 用戶密碼:aa

    確認密碼:aaa 聯(lián)系電話:18234086882

    QQ:1104014730 E-mail:1104014730@qq.com

    來自:山西

    測試結(jié)果:兩次輸入的密碼不一致!

    第10組:用戶名:admin 用戶密碼:aa

    確認密碼:aaa 聯(lián)系電話:1

    QQ:1104014730 E-mail:1104014730@qq.com

    來自:山西

    測試結(jié)果:輸入的聯(lián)系電話格式不正確!

    第11組:用戶名:admin 用戶密碼:aa

    確認密碼:aaa 聯(lián)系電話:18234086882

    QQ:aa E-mail:1104014730@qq.com

    來自:山西

    測試結(jié)果:輸入的QQ格式不正確!

    第12組:用戶名:admin 用戶密碼:aa

    確認密碼:aaa 聯(lián)系電話:18234086882

    QQ:aa E-mail:1104014730

    來自:山西

    測試結(jié)果:輸入的郵箱格式不正確!

    5.5 其他錯誤

    在程序設計實現(xiàn)的過程中不可避免的會產(chǎn)生各種難以預料的錯誤,如書寫錯誤、傳值類型不一致、參數(shù)傳遞問題等等。這些都需要通過細心的檢測與不斷的調(diào)試才能夠排除。比如在servlet路徑配置時因粗心錯誤導致運行導致所報錯誤,如圖5-1所示:

    圖 5-1由于servlet路徑配置錯誤,運行時的提示


    5.6 小結(jié)

    在本章中,通過對軟件的測試驗證了軟件程序的質(zhì)量,分別對登錄部分進行了等價類測試,等價類測試不考慮內(nèi)部的結(jié)構(gòu),將程序的輸入分為若干個有代表性的部分,從每個部分選取數(shù)據(jù)進行測試,通過對這些模塊的測試可以基本證明程序具有一定的健壯性和質(zhì)量性。


    結(jié) 論

    本設計己經(jīng)實現(xiàn)健身俱樂部信息管理系統(tǒng)的全部功能,而且健身俱樂部信息管理系統(tǒng)的實用功能全部能夠正常運行,例如:修改登錄密碼、工作人員管理、會員卡類型管理、會員資料管理、健身器材管理、教練執(zhí)教管理、安全退出七大模塊。本設計運用B/S的3層結(jié)構(gòu)模式和瑞典MySQL AB公司開發(fā)的MySQL數(shù)據(jù)庫,并在設計初期,首先,完成了數(shù)據(jù)庫系統(tǒng)的搭建,在設計中錄入了一些數(shù)據(jù);其次,完成了數(shù)據(jù)庫、開發(fā)環(huán)境軟件和運行環(huán)境軟件的銜接并最終實現(xiàn)了本系統(tǒng)的運行。

    我自己的畢業(yè)設計論文將告一段落的時候。選擇運行,發(fā)現(xiàn)己經(jīng)基本的達到了預期的想象的效果,成就感在沒有人在時也總會出現(xiàn)。雖然實現(xiàn)了俱樂部的大部分功能,但是因為有限能力和時間的問題,總是感覺還有很多不如意的方面,例如:數(shù)據(jù)庫管理系統(tǒng)的應用簡單、軟件的前期連接不暢、系統(tǒng)總體設計不夠飽滿、系統(tǒng)所實現(xiàn)功能簡單。但是,這些不足出現(xiàn)是由于自身知識不夠全面,所需技術沒有完全掌握,軟硬件方面的限制,外觀的粗糙、功能的不全、代碼的不合理等。但是,我又會自戀式的安慰一下自己:選擇一條路,不用過于關注最后的結(jié)果,最可貴的是奮斗過程中的快樂和收獲。用這些話語來安慰我還沒有平復的心情。因此本系統(tǒng)的不足之處將于以后的學習生活中逐步完善與改進。

    由于本設計己完成了健身俱樂部信息管理系統(tǒng)的整體構(gòu)建,應該可以投入簡單的使用,使用本設計能大大減少應用方的員工需求量,提高員工的工作效率。本設計將會對未來俱樂部行業(yè)的電子化、信息化、科技化起到?jīng)Q定性的作用。在未來本系統(tǒng)將發(fā)揮一套系統(tǒng)管理多家企業(yè)的巨大作用。個人的精力是有限的,尤其是作為學生對某項課題的研究所能取得的成果也只能達到一定程度,而不可能是頂點。本文的不足之處,請各位導師以及同學指正,對于健身俱樂部信息管理系統(tǒng)的研究就告一段落了,爭取在以后的學習生活中繼續(xù)對此進行研究。


    參考文獻

    [1] BruceEckel. JAVA編程思想[M]. 機械工業(yè)出版社, 2003.1~78

    [2] 孫一林,彭波等. JSP數(shù)據(jù)庫編程實例[M]. 清華大學出版社, 2002.1~465

    [3] Brown等. JSP編程指南(第二版)[M]. 電子工業(yè)出版社, 2003,1~268

    [4] 孫涌. 現(xiàn)代軟件工程[M]. 北京希望電子出版社,2003,1~246

    [5] 姜翠霞. 數(shù)據(jù)庫系統(tǒng)基礎[M]. 航空航天大學出版社, 2009.51~208

    [6] Flangan. JAVA技術手冊[M]. 中國電力出版社, 2002.23~294

    [7] LeeAnnePhilips. 巧學活用JSP[M]. 電子工業(yè)出版社, 2004.1~319

    [8] 薩師煊, 王珊. 數(shù)據(jù)庫系統(tǒng)概論[M]. 高等教育出版社, 2002.3~460

    [9] 李曙光. JSP開發(fā)實例完全剖析[M]. 電子工業(yè)出版社, 2006.23~400

    [10] [美]Walter Savitch. Absolute Java[M]. 電子工業(yè)出版社. 2005

    [11] Kong Michael. An environment for secure SQL/Server computing [M].Oxford University Press Inc., 1993: 149 

    [12] W.Clay,Richardson, Donald,Avondolio. The Java high class weaves a distance:JDK 5[J]. Scientific & Technology Book Review,No.3, 2006:17-18

    [13] Sanden, Bo. SYSTEMS PROGRAMMING WITH JSP:EXAMPLE - A VDUCONTROLLER[C]. Communications of the ACM,Vol28,No10,1985:1059-1067

    [14] Tsui,Frank F. JSP EM DASH A RESEARCH SIGNAL PROCESSOR IN JOSEPHSON TECHNOLOGY[C]. IBM Journal of Research and Development,Vol24, No2,1980:243-252

    致 謝

    畢業(yè)設計即將進入尾聲,在此次設計的過程中,我與同學互相學習,向老師討教,不僅讓我學會了很多知識,鞏固以前所學,還讓我鍛煉了動手能力和全面思考問題的能力,使我有勇氣面對未來的挑戰(zhàn)。

    感謝所有燃燒自己,照亮別人的園丁們,我將帶著你們的希望,以不同的方式,在祖國的現(xiàn)代化建設中奮斗。

    在本次畢業(yè)設計過程中,得到了指導老師的指導與支持。在此特老師的大力幫助。指導老師在數(shù)據(jù)庫的搭建以及整體項目的把握上提供了非常有用的幫助,讓我能夠較快的理解整個系統(tǒng)的意義,并且利用所學知識完成設計,雖然程序仍然有一些不是很完美的地方,但是仍然能讓我學到很多東西,在各個方面對自己都有所提高。

    另外我還要感謝我的母校——太原理工大學,以及在大學四年生活中給予我關心和幫助的老師和同學,是他們教會了我專業(yè)的知識和做人的道理。在此次畢業(yè)設計的設計過程中,遇到了很多困難,但是有很多同學和老師的熱情幫助,使得我按計劃完成了任務,在整個系統(tǒng)的把握上給予了我很多幫助,我一定會努力完善自己,為母校爭光。

    轉(zhuǎn)眼間,我們即將畢業(yè),踏入社會,回首過去的大學生活,過得很充實,有苦也有樂,收獲了很多知識和友誼,感謝母校的各位老師傳授給我們很多知識,也在為人處世上給予了非常多的幫助。正是在這幾個月緊張而充實的畢業(yè)設計中,我感到自己的知識得到了一次升華,我相信:我的畢業(yè)設計會給我的四年大學畫上一個圓滿的句號。

    附錄:英文技術資料翻譯

    英文原文

    An Overview of Servlet and JSP Technology

    1.1 A Servlet's Job

    Servlets are Java programs that run on Web or application servers, acting as a middle layer between requests coming from Web browsers or other HTTP clients and databases or applications on the HTTP server. Their job is to perform the following tasks, as illustrated in Figure 1-1.

    Figure 1-1

    1.Read the explicit data sent by the client.

    The end user normally enters this data in an HTML form on a Web page. However, the data could also come from an applet or a custom HTTP client program.

    2.Read the implicit HTTP request data sent by the browser.

    Figure 1-1 shows a single arrow going from the client to the Web server (the layer where servlets and JSP execute), but there are really two varieties of data: the explicit data that the end user enters in a form and the behind-the-scenes HTTP information. Both varieties are critical. The HTTP information includes cookies, information about media types and compression schemes the browser understands, and so on.

    3.Generate the results.

    This process may require talking to a database, executing an RMI or EJB call, invoking a Web service, or computing the response directly. Your real data may be in a relational database. Fine. But your database probably doesn't speak HTTP or return results in HTML, so the Web browser can't talk directly to the database. Even if it could, for security reasons, you probably would not want it to. The same argument applies to most other applications. You need the Web middle layer to extract the incoming data from the HTTP stream, talk to the application, and embed the results inside a document.

    4.Send the explicit data (i.e., the document) to the client.

    This document can be sent in a variety of formats, including text (HTML or XML), binary (GIF images), or even a compressed format like gzip that is layered on top of some other underlying format. But, HTML is by far the most common format, so an important servlet/JSP task is to wrap the results inside of HTML.

    5.Send the implicit HTTP response data.

    Figure 1-1 shows a single arrow going from the Web middle layer (the servlet or JSP page) to the client. But, there are really two varieties of data sent: the document itself and the behind-the-scenes HTTP information. Again, both varieties are critical to effective development. Sending HTTP response data involves telling the browser or other client what type of document is being returned (e.g., HTML), setting cookies and caching parameters, and other such tasks.

    1.2 Why Build Web Pages Dynamically?

    Many client requests can be satisfied by prebuilt documents, and the server would handle these requests without invoking servlets. In many cases, however, a static result is not sufficient, and a page needs to be generated for each request. There are a number of reasons why Web pages need to be built on-the-fly:

    1. The Web page is based on data sent by the client.

    For instance, the results page from search engines and order-confirmation pages at online stores are specific to particular user requests. You don't know what to display until you read the data that the user submits. Just remember that the user submits two kinds of data: explicit (i.e., HTML form data) and implicit (i.e., HTTP request headers). Either kind of input can be used to build the output page. In particular, it is quite common to build a user-specific page based on a cookie value.

    2.The Web page is derived from data that changes frequently.

    If the page changes for every request, then you certainly need to build the response at request time. If it changes only periodically, however, you could do it two ways: you could periodically build a new Web page on the server (independently of client requests), or you could wait and only build the page when the user requests it. The right approach depends on the situation, but sometimes it is more convenient to do the latter: wait for the user request. For example, a weather report or news headlines site might build the pages dynamically, perhaps returning a previously built page if that page is still up to date.

    3.The Web page uses information from corporate databases or other server-side sources.

    If the information is in a database, you need server-side processing even if the client is using dynamic Web content such as an applet. Imagine using an applet by itself for a search engine site:

    "Downloading 50 terabyte applet, please wait!" Obviously, that is silly; you need to talk to the database. Going from the client to the Web tier to the database (a three-tier approach) instead of from an applet directly to a database (a two-tier approach) provides increased flexibility and security with little or no performance penalty. After all, the database call is usually the rate-limiting step, so going through the Web server does not slow things down. In fact, a three-tier approach is often faster because the middle tier can perform caching and connection pooling.

    In principle, servlets are not restricted to Web or application servers that handle HTTP requests but can be used for other types of servers as well. For example, servlets could be embedded in FTP or mail servers to extend their functionality. And, a servlet API for SIP (Session Initiation Protocol) servers was recently standardized (see?http://jcp.org/en/jsr/detail?id=116). In practice, however, this use of servlets has not caught on, and we'll only be discussing HTTP servlets.

    1.3 The Advantages of Servlets Over "Traditional" CGI

    Java servlets are more efficient, easier to use, more powerful, more portable, safer, and cheaper than traditional CGI and many alternative CGI-like technologies.

    1.Efficient

    With traditional CGI, a new process is started for each HTTP request. If the CGI program itself is relatively short, the overhead of starting the process can dominate the execution time. With servlets, the Java virtual machine stays running and handles each request with a lightweight Java thread, not a heavyweight operating system process. Similarly, in traditional CGI, if there are N requests to the same CGI program, the code for the CGI program is loaded into memory N times. With servlets, however, there would be N threads, but only a single copy of the servlet class would be loaded. This approach reduces server memory requirements and saves time by instantiating fewer objects. Finally, when a CGI program finishes handling a request, the program terminates. This approach makes it difficult to cache computations, keep database connections open, and perform other optimizations that rely on persistent data. Servlets, however, remain in memory even after they complete a response, so it is straightforward to store arbitrarily complex data between client requests.

    2.Convenient

    Servlets have an extensive infrastructure for automatically parsing and decoding HTML form data, reading and setting HTTP headers, handling cookies, tracking sessions, and many other such high-level utilities. In CGI, you have to do much of this yourself. Besides, if you already know the Java programming language, why learn Perl too? You're already convinced that Java technology makes for more reliable and reusable code than does Visual Basic, VBScript, or C++. Why go back to those languages for server-side programming?

    3.Powerful

    Servlets support several capabilities that are difficult or impossible to accomplish with regular CGI. Servlets can talk directly to the Web server, whereas regular CGI programs cannot, at least not without using a server-specific API. Communicating with the Web server makes it easier to translate relative URLs into concrete path names, for instance. Multiple servlets can also share data, making it easy to implement database connection pooling and similar resource-sharing optimizations. Servlets can also maintain information from request to request, simplifying techniques like session tracking and caching of previous computations.

    4.Portable

    Servlets are written in the Java programming language and follow a standard API. Servlets are supported directly or by a plugin on virtually every major Web server. Consequently, servlets written for, say, Macromedia JRun can run virtually unchanged on Apache Tomcat, Microsoft Internet Information Server (with a separate plugin), IBM WebSphere, iPlanet Enterprise Server, Oracle9i AS, or StarNine WebStar. They are part of the Java 2 Platform, Enterprise Edition, so industry support for servlets is becoming even more pervasive.

    5.Inexpensive

    A number of free or very inexpensive Web servers are good for development use or deployment of low- or medium-volume Web sites. Thus, with servlets and JSP you can start with a free or inexpensive server and migrate to more expensive servers with high-performance capabilities or advanced administration utilities only after your project meets initial success. This is in contrast to many of the other CGI alternatives, which require a significant initial investment for the purchase of a proprietary package.

    Price and portability are somewhat connected. For example, Marty tries to keep track of the countries of readers that send him questions by email. India was near the top of the list, probably #2 behind the U.S. Marty also taught one of his JSP and servlet training courses (see?http://courses.coreservlets.com/) in Manila, and there was great interest in servlet and JSP technology there.

    Now, why are India and the Philippines both so interested? We surmise that the answer is twofold. First, both countries have large pools of well-educated software developers. Second, both countries have (or had, at that time) highly unfavorable currency exchange rates against the U.S. dollar. So, buying a special-purpose Web server from a U.S. company consumed a large part of early project funds.

    But, with servlets and JSP, they could start with a free server: Apache Tomcat (either standalone, embedded in the regular Apache Web server, or embedded in Microsoft IIS). Once the project starts to become successful, they could move to a server like Caucho Resin that had higher performance and easier administration but that is not free. But none of their servlets or JSP pages have to be rewritten. If their project becomes even larger, they might want to move to a distributed (clustered) environment. No problem: they could move to Macromedia JRun Professional, which supports distributed applications (Web farms). Again, none of their servlets or JSP pages have to be rewritten. If the project becomes quite large and complex, they might want to use Enterprise JavaBeans (EJB) to encapsulate their business logic. So, they might switch to BEA WebLogic or Oracle9i AS. Again, none of their servlets or JSP pages have to be rewritten. Finally, if their project becomes even bigger, they might move it off of their Linux box and onto an IBM mainframe running IBM WebSphere. But once again, none of their servlets or JSP pages have to be rewritten.

    6.Secure

    One of the main sources of vulnerabilities in traditional CGI stems from the fact that the programs are often executed by general-purpose operating system shells. So, the CGI programmer must be careful to filter out characters such as backquotes and semicolons that are treated specially by the shell. Implementing this precaution is harder than one might think, and weaknesses stemming from this problem are constantly being uncovered in widely used CGI libraries.

    A second source of problems is the fact that some CGI programs are processed by languages that do not automatically check array or string bounds. For example, in C and C++ it is perfectly legal to allocate a 100-element array and then write into the 999th "element," which is really some random part of program memory. So, programmers who forget to perform this check open up their system to deliberate or accidental buffer overflow attacks.

    Servlets suffer from neither of these problems. Even if a servlet executes a system call (e.g., with Runtime.exec or JNI) to invoke a program on the local operating system, it does not use a shell to do so. And, of course, array bounds checking and other memory protection features are a central part of the Java programming language.

    7.Mainstream

    There are a lot of good technologies out there. But if vendors don't support them and developers don't know how to use them, what good are they? Servlet and JSP technology is supported by servers from Apache, Oracle, IBM, Sybase, BEA, Macromedia, Caucho, Sun/iPlanet, New Atlanta, ATG, Fujitsu, Lutris, Silverstream, the World Wide Web Consortium (W3C), and many others. Several low-cost plugins add support to Microsoft IIS and Zeus as well. They run on Windows, Unix/Linux, MacOS, VMS, and IBM mainframe operating systems. They are the single most popular application of the Java programming language. They are arguably the most popular choice for developing medium to large Web applications. They are used by the airline industry (most United Airlines and Delta Airlines Web sites), e-commerce (http://ofoto.com), online banking (First USA Bank, Banco Popular de Puerto Rico), Web search engines/portals (http://excite.com), large financial sites (American Century Investments), and hundreds of other sites that you visit every day.

    Of course, popularity alone is no proof of good technology. Numerous counter-examples abound. But our point is that you are not experimenting with a new and unproven technology when you work with server-side Java.

    注:本文來源于http://pdf.coreservlets.com

    中文譯文

    Servlet和JSP技術簡述

    1.1 Servlet的功能

    Servlets是運行在Web或應用服務器上的Java程序,它是一個中間層,負責連接來自Web瀏覽器或其他HTTP客戶程序的請求和HTTP服務器上的數(shù)據(jù)庫或應用程序。Servlet的工作是執(zhí)行如下的任務,如圖1-1所示 。

    圖1-1 Web中間件的作用

    1、讀取客戶發(fā)送的顯式數(shù)據(jù)。

    最終用戶一般在頁面的HTML表單中輸入這些數(shù)據(jù)。然而,數(shù)據(jù)還有可能來自applet或定制的HTTP客戶程序。

    2、讀取由瀏覽器發(fā)送的隱式請求數(shù)據(jù)。

    圖1.1中顯示了一條從客戶端到Web服務器的單箭頭,但實際上從客戶端傳送到Web服務器的數(shù)據(jù)有兩種,它們分別為用戶在表單中輸入的顯式數(shù)據(jù),以及后臺的HTTP信息。兩種數(shù)據(jù)都很重要。HTTP信息包括cookie、瀏覽器所能識別的媒體類型和壓縮模式等。

    3、生成結(jié)果。

    這個過程可能需要訪問數(shù)據(jù)庫、執(zhí)行RMI或EJB調(diào)用、調(diào)用Web服務,或者直接計算得出對應的響應。實際的數(shù)據(jù)可能存儲在關系型數(shù)據(jù)庫中。該數(shù)據(jù)庫可能不理解HTTP,或者不能返回HTML形式的結(jié)果,所有Web瀏覽器不能直接與數(shù)據(jù)庫進行會話。即使它能夠做到這一點,為了安全上的考慮,我們也不希望讓它這么做。對應大多數(shù)其他應用程序,也存在類似的問題。因此,我們需要Web中間層從HTTP流中提取輸入數(shù)據(jù),與應用程序會話,并將結(jié)果嵌入到文檔中。

    4、向客戶發(fā)送顯式數(shù)據(jù)(即文檔)。

    這個文檔可以用各種格式發(fā)送,包括文本(HTML或XML),二進制(GIF圖),甚至可以是建立在其他底層格式之上的壓縮格式,如gzip。但是,到目前為止,HTML是最常用的格式,故而servlet和JSP的重要任務之一就是將結(jié)果包裝到HTML中。

    5、發(fā)送隱式的HTTP響應數(shù)據(jù)。

    圖1.1中顯示了一條從Web中間層到客戶端的單箭頭。但是,實際發(fā)送的數(shù)據(jù)有兩種:文檔本身,以及后臺的HTTP信息。同樣,兩種數(shù)據(jù)對開發(fā)來說都是至關重要的。HTTP響應數(shù)據(jù)的發(fā)送過程涉及告知瀏覽器或其他客戶程序所返回文檔的類型(如HTML),設置cookie和緩存參數(shù),以及其他類似的任務。

    1.2 動態(tài)構(gòu)建網(wǎng)頁的原因

    預先建立的文檔可以滿足客戶的許多請求,服務器無需調(diào)用servlet就可以處理這些請求。然而,許多情況下靜態(tài)的結(jié)果不能滿足要求,我們需要針對每個請求生成一個頁面。實時構(gòu)建頁面的理由有很多種:

    1、網(wǎng)頁基于客戶發(fā)送的數(shù)據(jù)。

    例如,搜索引擎生成的頁面,以及在線商店的訂單確認頁面,都要針對特定的用戶請求而產(chǎn)生。在沒有讀取到用戶提交的數(shù)據(jù)之前,我們不知道應該顯示什么。要記住,用戶提交兩種類型的數(shù)據(jù):顯示(即HTML表單的數(shù)據(jù))和隱式(即HTTP請求的報頭)。兩種輸入都可用來構(gòu)建輸出頁面。基于cookie值針對具體用戶構(gòu)建頁面的情況尤其普遍。

    2、頁面由頻繁改變的數(shù)據(jù)導出。

    如果頁面需要根據(jù)每個具體的請求做出相應的改變,當然需要在請求發(fā)生時構(gòu)建響應。但是,如果頁面周期性地改變,我們可以用兩種方式來處理它:周期性地在服務器上構(gòu)建新的頁面(和客戶請求無關),或者僅僅在用戶請求該頁面時再構(gòu)建。具體應該采用哪種方式要根據(jù)具體情況而定,但后一種方式常常更為方便,因為它只需簡單地等待用戶的請求。例如,天氣預報或新聞網(wǎng)站可能會動態(tài)地構(gòu)建頁面,也有可能會返回之前構(gòu)建的頁面(如果它還是最新的話)。

    3、頁面中使用了來自公司數(shù)據(jù)庫或其他服務器端數(shù)據(jù)源的信息。

    如果數(shù)據(jù)存儲在數(shù)據(jù)庫中,那么,即使客戶端使用動態(tài)Web內(nèi)容,比如applet,我們依舊需要執(zhí)行服務器端處理。想象以下,如果一個搜索引擎網(wǎng)站完全使用applet,那么用戶將會看到:“正在下載50TB的applet,請等待!”。顯然,這樣很愚蠢;這種情況下,我們需要與數(shù)據(jù)庫進行會話。從客戶端到Web層再到數(shù)據(jù)庫(三層結(jié)構(gòu)),要比從applet直接到數(shù)據(jù)庫(二層結(jié)構(gòu))更靈活,也更安全,而性能上的損失很少甚至沒有。畢竟數(shù)據(jù)庫調(diào)用通常是對速度影響最大的步驟,因而,經(jīng)過中間層可以執(zhí)行高速緩存和連接共享。

    理論上講,servlet并非只能用于處理HTTP請求的Web服務器或應用服務器,它同樣可以用于其他類型的服務器。例如,servlet能夠嵌入到FTP或郵件服務器中,擴展他們的功能。而且,用于會話啟動協(xié)議服務器的servlet API最近已經(jīng)被標準化(參見http://jcp.org/en/jsr/detail?id=116)。但在實踐中,servlet的這種用法尚不流行,在此,我們只論述HTTP Servlet。

    1.3 Servlet相對于“傳統(tǒng)”CGI的優(yōu)點

    和傳統(tǒng)CGI及許多類CGI技術相比,Java servelt效率更高、更易用、更強大、更容易移植、更安全、也更廉價。

    1、效率

    應用傳統(tǒng)的CGI,針對每個HTTP請求都用啟動一個新的進程。如果CGI程序自身相對比較簡短,那么啟動進程的開銷會占用大部分執(zhí)行時間。而使用servelt,Java虛擬機會一直運行,并用輕量級的Java線程處理每個請求,而非重量級的操作系統(tǒng)進程。類似地,應用傳統(tǒng)的CGI技術,如果存在對同一CGI程序的N個請求,那么CGI程序的代碼會載入內(nèi)存N次。同樣的情況,如果使用servlet則啟動N個線程,僅僅載入servlet類的單一副本。這種方式減少了服務器的內(nèi)存需求,通過實例化更少的對象從而節(jié)省了時間。最后,當CGI程序結(jié)束對請求的處理之后,程序結(jié)束。這種方式難以緩存計算結(jié)果,保持數(shù)據(jù)庫連接打開,或是執(zhí)行依靠持續(xù)性數(shù)據(jù)的其他優(yōu)化。然而,servlet會一直停留在內(nèi)存中(即使請求處理完畢),因而可以直接存儲客戶請求之間的任意復雜數(shù)據(jù)。

    2、便利

    Servlet提供大量的基礎構(gòu)造,可以自動分析和解碼HTML的表單數(shù)據(jù),讀取和設置HTTP報頭,處理cookie,跟蹤會話,以及其他的高級功能。而在CGI中,大部分工作都需要我們自己完成。另外,如果您已經(jīng)了解了Java編程語言,為什么還學Perl呢?您已經(jīng)承認應用Java技術編寫的代碼要比Visual Basic,VBScript或C++編寫的代碼更可靠,且更易重用,為什么還有倒退回去選擇那些語言來開發(fā)服務器端的程序呢?

    3、強大

    Servlet支持常規(guī)CGI難以實現(xiàn)或根本不能實現(xiàn)的幾項功能。Servlet能夠直接與Web服務器對話,而常規(guī)的CGI程序做不到這一點,至少在不使用服務器專有API的情況下是這樣。例如,與Web服務器的通信使得將相對URL轉(zhuǎn)換成具體的路徑名變得更為容易。多個servelt還可以共享數(shù)據(jù),從而易于實現(xiàn)數(shù)據(jù)庫連接共享和類似的資源共享優(yōu)化。Servelt還能維護請求之間的信息,使得諸如會話跟蹤和計算結(jié)果緩存等技術變得更為簡單。

    4、可移植性

    Servelt使用Java編程語言,并且遵循標準的API。所有主要的Web服務器,實際上都直接或通過插件支持servlet。因此。為Macromedia JRun編寫的servlet,可以不經(jīng)過任何修改地在Apache Tomcat,Microsoft Internet Information Server,IBM WebSphere ,iPlanet Enterprise Server,Oracle9i AS 或者StarNine WebStar上運行。他們是Java2平臺企業(yè)版的一部分,所以對servlet的支持越來越普遍。

    5、廉價

    對于開發(fā)用的網(wǎng)站、低容量或中等容量網(wǎng)站的部署,有大量免費或極為廉價的Web服務器可供選擇。因此,通過使用servlet和jsp,我們可以從免費或廉價的服務器開始,在項目獲得初步成功后,再移植到具有更高性能或高級管理工具的昂貴的服務器上。這與其他CGI方案形成鮮明的對比,這些CGI方案在初期都需要為購買專利軟件包投入大量的資金。

    價格和可移植性在某種程度上是相互關聯(lián)的。例如,Marty記錄了所有通過電子郵件向他發(fā)送問題的讀者的所在國。印度接近列表的頂端,可能僅次于美國。Marty曾在馬尼拉講授過JSP和servlet培訓課程(參見?http://courses.coreservlets.com/),那兒對servelt和jsp技術抱有很大的興趣。

    那么,為什么印度和菲律賓都對這項技術這么感興趣呢?我們推測答案可能分兩部分。首先,這兩個國家都擁有大量訓練有素的軟件開發(fā)人員。其次,這兩個國家的貨幣對美元的匯率都極為不利。因此,從美國公司那里購買專用Web服務器會消耗掉項目的大部分前期資金。

    但是,使用servlet 和JSP,他們能夠從免費的服務器開始:Apache Tomcat。項目取得成功之后,他們可以轉(zhuǎn)移到性能更高、管理更容易,但需要付費的服務器。他們的servlet和JSP不需要重新編寫。如果他們的項目變得更龐大,他們或許希望轉(zhuǎn)移到分布式環(huán)境。沒有問題:他們可以轉(zhuǎn)而使用Macromedia JRun Professional,該服務器支持分布式應用。同樣,他們的servlet和jsp沒有任何部分需要重寫。如果項目變得極為龐大,錯綜復雜,他們或許希望使用Enterprise JavaBeans來封裝他們的商業(yè)邏輯。因此,他們可以切換到BEA WebLogic或Oracle9i AS。同樣,不需要對servlet和JSP做出更改。最后,如果他們的項目變得更龐大,他們或許將他從Linux轉(zhuǎn)移到運行IBM WebSphere的IBM大型機上,他們還是不需要做出任何更改。

    6、安全

    傳統(tǒng)CGI程序中主要的漏洞來源之一就是,CGI程序常常由通用的操作系統(tǒng)外殼來執(zhí)行。因此,CGI程序必須仔細地過濾掉那些可能被外殼特殊處理的字符,如反引導和分號。實現(xiàn)這項預防措施的難度可能超出我們的想象,在廣泛應用的CGI庫中,不斷發(fā)現(xiàn)由這類問題引發(fā)的弱點。

    問題的第二個來源是,一些CGI程序用不自動檢查數(shù)組和字符串邊界的語言編寫而成。例如,在C和C++中,可以分配一個100個元素的數(shù)組,然后向第999個“元素“寫入數(shù)據(jù)——實際上是程序內(nèi)存的隨機部分,這完全合法。因而,如果程序員忘記執(zhí)行這項檢查,就會將系統(tǒng)暴露在蓄意或偶然的緩沖區(qū)溢出攻擊之下。

    Servelt不存在這些問題。即使servelt執(zhí)行系統(tǒng)調(diào)用激活本地操作系統(tǒng)上的程序,它也不會用到外殼來完成這項任務。當然,數(shù)組邊界的檢查以及其他內(nèi)存保護特性是Java編程語言的核心部分。

    7、主流

    雖然存在許多很好的技術,但是,如果提供商不支持他們,或開發(fā)人員不知道如何使用這些技術,那么它們的優(yōu)點又如何體現(xiàn)呢?servelt和JSP技術得到服務器提供商的廣泛支持,包括Apache,Oracle,IBM,Sybase,BEA,Maromedia,Causho,Sun/iPlanet,New Atlanta,ATG,Fujitsu,Lutris,Silverstream,World Wide Web Consortinrm ,以及其他服務器。存在幾種低廉的插件,通過應用這些插件,Microsoft IIS和Zeus也同樣支持servlet和jsp技術,它們運行在Windows,Unix/Linus,MacOS,VMS,和IBM大型機操作系統(tǒng)之上。它們用在航空業(yè)、電子商務、在線銀行、web搜索引擎、門戶、大型金融網(wǎng)站、以及成百上千您日常光顧的其他網(wǎng)站。

    當然,僅僅是流行并不能證明技術的優(yōu)越性。眾多的反例比比皆是。但我們的立場是:服務器端Java本非一項新的、未經(jīng)證實的技術。

    總結(jié)

    以上是生活随笔為你收集整理的基于JSP的健身俱乐部会员管理系统的设计与实现(论文+PPT+源码)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日韩精品色哟哟 | 手机av免费| 日韩成人欧美 | 综合色在线 | 成人国产a| 国产精品无码专区 | 99久久精品一区二区成人 | 人人爽人人 | 免费美女av| 国产色视频在线 | 午夜黄色 | 在线观看国产精品视频 | 日本高清视频一区二区 | 学生孕妇videosex性欧美 | 欧美日韩精品免费 | 国产美女视频 | 中国老头性行为xxxx | 大学生一级一片全黄 | 丰满人妻一区二区三区精品高清 | 国产美女永久免费 | 一区二区视频网 | 悠悠av | 爱爱免费网站 | 美女精品网站 | 久久久久久亚洲中文字幕无码 | 操极品少妇| 91夜色| 天天操天天操天天操天天 | 久久久激情视频 | 亚洲乱码国产乱码精品精剪 | 国产成人精品午夜福利Av免费 | 国产精品视频播放 | 337p粉嫩大胆噜噜噜噜69影视 | 中文在线第一页 | 人妻互换一区二区三区四区五区 | 亚洲AV永久无码国产精品国产 | 国产乱子伦精品 | 三级黄色免费 | 美女野外找人搭讪啪啪 | 亚洲AV乱码国产精品观看麻豆 | 97精品人人a片免费看 | 婷婷六月综合网 | 老湿机69福利区午夜x片 | 国产激情综合 | 国产麻豆剧传媒精品国产av | 好吊色网站 | 黄色av片三级三级三级免费看 | 国产精品毛片久久久久久久av | 中文视频一区 | 全黄性性激高免费视频 | 久久久精品美女 | 黄页网站视频 | 麻豆传媒网站 | 超碰av免费 | 精品九九九九 | 欧美亚洲精品天堂 | 久久中文精品 | 成人激情在线视频 | 国产中文字幕一区二区 | 黄色三级在线播放 | 日韩一二三四区 | 日韩在线观看视频网站 | 免费极品av一视觉盛宴 | 精品国产乱码久久久久久婷婷 | 丝袜美腿中文字幕 | 欧美日韩精品一区二区三区视频播放 | 午夜婷婷 | 国产成人短视频 | 东京热一区二区三区四区 | 男女www| 九九久久免费视频 | 中文字字幕在线中文 | 香蕉视频网站入口 | 国产一区二区不卡视频 | 91久久久久一区二区 | 日韩一区二区在线免费观看 | 黄骗免费网站 | 91官网在线 | 日本黄色片网址 | 精品美女在线观看 | 国产精品一区二区av白丝下载 | 亚洲网站免费看 | 狠狠躁 | 精品动漫一区二区三区在线观看 | 天天操天天摸天天干 | 张津瑜国内精品www在线 | 欧美亚洲天堂网 | 夜夜骑av| 一级精品毛片 | 麻豆视频免费在线 | 广州毛片 | www日日| 久热网 | 无码精品在线视频 | 91精品视频免费看 | 性色av蜜臀av| a网站在线观看 | 黄色理论片 | 中文字幕一区2区3区 |