![公司通用網(wǎng)站的開發(fā)與設(shè)計(jì)方案_第1頁](http://file4.renrendoc.com/view/137ad6909d9a0775ad17b83f9899a21e/137ad6909d9a0775ad17b83f9899a21e1.gif)
![公司通用網(wǎng)站的開發(fā)與設(shè)計(jì)方案_第2頁](http://file4.renrendoc.com/view/137ad6909d9a0775ad17b83f9899a21e/137ad6909d9a0775ad17b83f9899a21e2.gif)
![公司通用網(wǎng)站的開發(fā)與設(shè)計(jì)方案_第3頁](http://file4.renrendoc.com/view/137ad6909d9a0775ad17b83f9899a21e/137ad6909d9a0775ad17b83f9899a21e3.gif)
![公司通用網(wǎng)站的開發(fā)與設(shè)計(jì)方案_第4頁](http://file4.renrendoc.com/view/137ad6909d9a0775ad17b83f9899a21e/137ad6909d9a0775ad17b83f9899a21e4.gif)
![公司通用網(wǎng)站的開發(fā)與設(shè)計(jì)方案_第5頁](http://file4.renrendoc.com/view/137ad6909d9a0775ad17b83f9899a21e/137ad6909d9a0775ad17b83f9899a21e5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
單位代碼10642密級(jí)公開學(xué)號(hào)200820174001學(xué)士學(xué)位論文
企、事業(yè)單位信息化規(guī)劃與建設(shè)論文作者:賀鳳林指導(dǎo)教師:孔世明學(xué)科專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)職教師資本科提交論文日期:2012年3月7日論文答辯日期:2012年4月11日學(xué)位授予單位:重慶文理學(xué)院中國·重慶2012年03月目錄TOC\o”1—3"\h\z\uHYPERLINK\l”_Toc224997759”摘要 2Abstract 3HYPERLINK\l”_Toc224997761”1、企業(yè)門戶網(wǎng)站規(guī)劃與建設(shè)理論概述 4HYPERLINK\l”_Toc224997762”1。1企業(yè)門戶網(wǎng)站規(guī)劃 4HYPERLINK\l”_Toc224997763"1.2建設(shè)理論概述 52、企業(yè)門戶網(wǎng)站建設(shè)重要性與指導(dǎo)原則 8HYPERLINK\l”_Toc224997765”2.1建設(shè)的重要性 8_Toc224997767”3、企業(yè)門戶網(wǎng)站建設(shè)整體設(shè)想 113.1設(shè)計(jì)思想 11_Toc224997770”3.3企業(yè)網(wǎng)站操作流程 12HYPERLINK\l”_Toc224997771”3。4相關(guān)技術(shù)分析 12HYPERLINK\l”_Toc224997772"3.4.1JSP技術(shù)簡介 123.4.2JSP工作原理 13_Toc224997776”3.4。5SQLSERVER2000數(shù)據(jù)庫 14HYPERLINK\l”_Toc224997777"3.4。6系統(tǒng)數(shù)據(jù)庫連接技術(shù)JDBC 15HYPERLINK\l”_Toc224997778”3.4。7BS模式與C/S模式的比較分析 203。5。1首頁 23_Toc224997782”3.5.3新聞中心 273.5。4用戶注冊 283.5.5用戶登陸 303。5.6后臺(tái)登陸 33_Toc224997787”3.5。8公司概況管理 38HYPERLINK\l”_Toc224997788"3。5.9注冊會(huì)員管理 41_Toc224997790”4.1程序調(diào)試 44HYPERLINK\l”_Toc224997791"4。2程序的測試 444.2。1測試的重要性及目的 44HYPERLINK\l”_Toc224997793”4.2.2測試的步驟 46HYPERLINK\l”_Toc224997794"4.2。3測試的主要內(nèi)容 46HYPERLINK\l”_Toc224997795”結(jié)束語 48HYPERLINK\l”_Toc224997796”致謝 49企業(yè)需不需要網(wǎng)站?幾乎所有有遠(yuǎn)見的企業(yè)家都會(huì)毫不猶豫地說:當(dāng)然需要!但一個(gè)不容忽視的HYPERLINK””問題是,許多企業(yè)僅僅停留在”有網(wǎng)站"的階段,他們并沒有意識(shí)到一個(gè)界面粗糙、HYPERLINK”/”內(nèi)容單一、流程混亂、安全性差的網(wǎng)站,其實(shí)給訪問者留下了極差的感覺,嚴(yán)重破壞了企業(yè)的形象。怎么樣的企業(yè)門戶網(wǎng)站才算成功?HYPERLINK”/”時(shí)代財(cái)富顧問公司在為眾多企業(yè)設(shè)計(jì)網(wǎng)站的過程中,HYPERLINK”/work/"總結(jié)出了一套完整的、有較高參考價(jià)值的《企業(yè)門戶網(wǎng)站評(píng)定標(biāo)準(zhǔn)》,期望以此引起企業(yè)界對(duì)自身網(wǎng)站的重視,使企業(yè)門戶網(wǎng)站真正成為企業(yè)宣傳、管理、營銷的有效工具。企業(yè)門戶網(wǎng)站定義:主要為了外界了解企業(yè)自身、樹立良好企業(yè)形象、并適當(dāng)提供一定服務(wù)的網(wǎng)站.根據(jù)行業(yè)特性的差別,以及企業(yè)的建站目的和主要目標(biāo)群體的不同,大致可以把企業(yè)門戶網(wǎng)站分為:基本信息型:主要面向客戶、業(yè)界人士或者普通瀏覽者,以介紹企業(yè)的基本資料、幫助樹立企業(yè)形象為主;也可以適當(dāng)提供行業(yè)內(nèi)的新聞或者知識(shí)信息。這種類型網(wǎng)站通常也被形象的比喻為企業(yè)的"WEBCatalog”。HYPERLINK”/dianzijixie/”電子商務(wù)型:主要面向供應(yīng)商、客戶或者企業(yè)產(chǎn)品(服務(wù))的消費(fèi)群體,以提供某種直屬于企業(yè)業(yè)務(wù)范圍的服務(wù)或交易、或者為業(yè)務(wù)服務(wù)的服務(wù)或者交易為主;這樣的網(wǎng)站可以說是正處于電子商務(wù)化的一個(gè)中間階段,由于行業(yè)特色和企業(yè)投入的深度廣度的不同,其電子商務(wù)化程度可能處于從比較初級(jí)的服務(wù)支持、產(chǎn)品列表到比較高級(jí)的網(wǎng)上支付的其中某一階段.通常這種類型可以形象的稱為"網(wǎng)上XX企業(yè)”。例如,網(wǎng)上銀行、網(wǎng)上酒店等。多媒體廣告型:主要面向客戶或者企業(yè)產(chǎn)品(服務(wù))的消費(fèi)群體,以宣傳企業(yè)的核心品牌形象或者主要產(chǎn)品(服務(wù))為主。這種類型無論從目的上還是實(shí)際表現(xiàn)手法上相對(duì)于普通網(wǎng)站而言更像一個(gè)平面廣告或者電視廣告,因此用"多媒體廣告"來稱呼這種類型的網(wǎng)站更貼切一點(diǎn)。在實(shí)際HYPERLINK”http://"應(yīng)用中,很多網(wǎng)站往往不能簡單的歸為某一種類型,無論是建站目的還是表現(xiàn)形式都可能涵蓋了兩種或兩種以上類型;對(duì)于這種企業(yè)門戶網(wǎng)站,可以按上述類型的區(qū)別劃分為不同的部分,每一個(gè)部分都基本上可以認(rèn)為是一個(gè)較為完整的網(wǎng)站類型。1.2建設(shè)理論概述企業(yè)門戶網(wǎng)站第一原則:目的性Intension必須有明確合理的建站目的和目標(biāo)群體。任何一個(gè)網(wǎng)站,必須首先具有明確的目的和目標(biāo)群體.網(wǎng)站是面對(duì)客戶、供應(yīng)商、消費(fèi)者還是全部?主要目的是為了介紹企業(yè)、宣傳某種產(chǎn)品還是為了試驗(yàn)電子商務(wù)?如果目的不是唯一的,還應(yīng)該清楚的列出不同目的的輕重關(guān)系.建站包括類型的選擇、內(nèi)容功能的籌備、界面設(shè)計(jì)等各個(gè)方面都受到目的性的直接,且從不請(qǐng)假.一個(gè)網(wǎng)站又是一個(gè)24小時(shí)營業(yè)的商店,讓您的顧客在任何時(shí)候都能買到東西,這樣,您的顧客會(huì)感激您為他們提供了方便。爭取新客戶首先,想一想自己所從事的行業(yè)。然后問自己:在一億人中,有一個(gè)人正需要找到您所能提供的服務(wù),可是,他能正好找到貴公司的機(jī)率有多大呢?如果您沒有自己的網(wǎng)站的話,這種機(jī)率可能近似于零。
3)服務(wù)現(xiàn)有的客戶一個(gè)網(wǎng)站實(shí)際上可以提高您對(duì)客戶服務(wù)的效率。它可以回答大多數(shù)客戶經(jīng)常向您提出的問題,您可以讓您的客戶上您的網(wǎng)站去了解他們所關(guān)心的問題,這樣您就可以騰出時(shí)間來去做更需要您做的事情,比如企業(yè)管理.
4)增加利潤一個(gè)網(wǎng)上商店自然會(huì)給您帶來利潤,您的成本銷售比將大大地降低。也就是銷售成本的降低。降低開銷和成本自然意味著利潤的增多。即使您不是一個(gè)生產(chǎn)銷售型企業(yè),也可以通過網(wǎng)上的廣告效應(yīng)為您帶來業(yè)務(wù),從而增加利潤.
5)降低成本用網(wǎng)站來降低成本是一種有效的競爭手段.預(yù)算一下每月登一個(gè)單頁的廣告需花費(fèi)10000元,另外每月做一次半版的報(bào)紙廣告,花費(fèi)大約15000元,這樣每月的廣告支出將是25000元。有了自己的網(wǎng)站后,您就可以減少單頁傳單和報(bào)紙廣告的版面,并使更多的人看到您企業(yè)的廣告,同時(shí),精確的了解反饋的情況,最快地做出反映。這樣,成本減少了,而更多未來的新的商機(jī)增多了。同時(shí),如果自己企業(yè)不想成立專屬的網(wǎng)站建設(shè)部門,完全可以尋找專業(yè)的網(wǎng)站建設(shè)公司來服務(wù)自己.相比之下的資金投入更為經(jīng)濟(jì)合理.6)延長營業(yè)時(shí)間如果有人幫您把您的營業(yè)時(shí)間延長66%,您自然會(huì)想到您的業(yè)務(wù)會(huì)增加,但也需要付相應(yīng)的水電費(fèi)和員工費(fèi)等。但是,有了自己的網(wǎng)站,您的業(yè)務(wù)將24小時(shí)營業(yè),而不增加任何成本。您可以同時(shí)服務(wù)成百上千個(gè)客戶而不需要增加店員。7)發(fā)展國際化業(yè)務(wù)您的企業(yè)形象及從事的業(yè)務(wù),將被世界上每一個(gè)擁有電腦和對(duì)您的業(yè)務(wù)感興趣的人所看到.即便是小公司,也可輕易與大公司競爭,在Internet上人人平等.8)開拓本地市場通過網(wǎng)絡(luò)搜索引擎可以找到更多未來的新客戶,給他們發(fā)E—mail,寄介紹性資料,一個(gè)新客戶也可以通過搜索相關(guān)類別、特征詞、甚至電話號(hào)碼來找到您。9)測試新產(chǎn)品如果您有一個(gè)新產(chǎn)品或新想法,為什么要去花大量的資金先去開發(fā)出來,結(jié)果得到的市場信息并不理想。最經(jīng)濟(jì)的辦法是先在網(wǎng)上測驗(yàn)一下您的想法和定位,得到正確的和理想的反饋后再花錢去將它實(shí)現(xiàn)出來。和客戶聯(lián)網(wǎng)對(duì)于一個(gè)企業(yè)來說至關(guān)重要。通過聯(lián)網(wǎng)廣和科技才經(jīng)常有更多的想法和更好的創(chuàng)意。通過聯(lián)網(wǎng)廣和科技找到了更多新客戶,更重要的是他們找到了廣和科技。只有Internet這種和客戶的聯(lián)接關(guān)系存在10)增強(qiáng)市場推廣想一想在您的電視廣告或報(bào)紙廣告在加上您的網(wǎng)站地址,這將給您的客戶又一新的途徑來了解您的業(yè)務(wù)。有人晚上在電視中看見您的廣告,這時(shí)您的公司或商店已經(jīng)下班了,但是他還可以上網(wǎng)來與您取得聯(lián)系,因?yàn)槟诰W(wǎng)上是24小時(shí)營業(yè)的.這里有一個(gè)很好的例子:有一家公司在一個(gè)報(bào)紙廣告中加上了公司網(wǎng)站地址,第二天他們發(fā)現(xiàn)有800人因?yàn)榭吹綀?bào)紙而去訪問了公司網(wǎng)站,只要想一想如果在廣告上沒有加那一行,他們失掉的將是什么每天有大約一億人上網(wǎng),這也是為什么很多有成效的企業(yè)都急于在網(wǎng)上有自己的一席之地,因?yàn)橐粌|個(gè)可能性客戶將是太大的一個(gè)數(shù)目,不應(yīng)被任何一個(gè)企業(yè)忽視。2.2指導(dǎo)原則建設(shè)企業(yè)門戶網(wǎng)站,注重宣傳公司的同時(shí)提高網(wǎng)站的服務(wù)質(zhì)量,主要運(yùn)用主頁面來給公司做宣傳,加強(qiáng)企業(yè)門戶網(wǎng)站的服務(wù)功能客戶,面向服務(wù)的經(jīng)營理念的指異下提供預(yù)定服務(wù)和售后服務(wù)須定服務(wù)又包括預(yù)定產(chǎn)品服務(wù)和預(yù)定技術(shù)支持服務(wù);售后服務(wù)包括提供產(chǎn)品的維護(hù),技術(shù)咨詢,技術(shù)培訓(xùn)等企業(yè)門戶網(wǎng)站規(guī)模的擴(kuò)大將會(huì)不斷提高網(wǎng)站的內(nèi)容會(huì)不斷豐富,發(fā)揮的作用也會(huì)增強(qiáng)網(wǎng)站建設(shè)資金投人也會(huì)不斷追加。但是在網(wǎng)站建設(shè)時(shí)必須注意互聯(lián)網(wǎng)不僅僅是一種媒體產(chǎn)力工具,不能以企業(yè)為中心的理念來指導(dǎo)企業(yè)門戶網(wǎng)站的建設(shè)應(yīng)轉(zhuǎn)換到以客戶為中心,以服務(wù)為中心的企業(yè)門戶網(wǎng)站經(jīng)營理念,利用網(wǎng)站建立高效的生產(chǎn)銷售模式。加強(qiáng)企業(yè)門戶網(wǎng)站的使用性,使企業(yè)的網(wǎng)站不在是一個(gè)擺設(shè),能真正的實(shí)現(xiàn)管理的信息化.3、企業(yè)門戶網(wǎng)站建設(shè)整體設(shè)想3.1設(shè)計(jì)思想系統(tǒng)采用JSP編程語言,在總體結(jié)構(gòu)上采用三層B/S結(jié)構(gòu):各類信息資源在服務(wù)器一端,采取數(shù)據(jù)庫(SQLSERVER2000)統(tǒng)一存放和組織,用戶在客戶機(jī)一端,無須任何配置工作,只須使用瀏覽器向WEB服務(wù)器代理提出訪問請(qǐng)求,服務(wù)器審核后通過中間控件與后臺(tái)數(shù)據(jù)庫鏈接,把請(qǐng)求服務(wù)的信息以WEB頁面形式通過瀏覽器反饋給用戶。系統(tǒng)E-R圖如下:游客游客注冊用戶名密碼姓名性別年齡電話住址郵箱類型注冊用戶瀏覽信息修改個(gè)人信息聯(lián)系我們技術(shù)中心公司概況新聞中心產(chǎn)品中心方案中心商務(wù)中心用戶名用戶名密碼管理員管理信息公司概況新聞中心產(chǎn)品中心方案中心商務(wù)中心技術(shù)中心聯(lián)系我們系統(tǒng)用戶注冊用戶3.2功能模塊圖前臺(tái)用戶前臺(tái)用戶企業(yè)網(wǎng)站企業(yè)介紹信息企業(yè)新聞瀏覽企業(yè)產(chǎn)品瀏覽方案中心瀏覽在線注冊管理員登錄添加修改刪除企業(yè)信息添加修改刪除新聞信息添加修改刪除產(chǎn)品信息注冊會(huì)員管理網(wǎng)站系統(tǒng)用戶管理企業(yè)新聞瀏覽技術(shù)方案管理3。3企業(yè)網(wǎng)站操作流程企業(yè)信息企業(yè)信息新聞中心企業(yè)產(chǎn)品技術(shù)信息在線注冊檢索數(shù)據(jù)庫登錄后臺(tái)企業(yè)信息管理業(yè)內(nèi)新聞管理企業(yè)產(chǎn)品管理網(wǎng)站系統(tǒng)管理注冊會(huì)員管理用戶管理員商務(wù)中心管理技術(shù)服務(wù)支持商務(wù)中心方案中心企業(yè)網(wǎng)站操作流程圖3。4相關(guān)技術(shù)分析3。4.1JSP技術(shù)簡介JSP(JavaServerPage服務(wù)器網(wǎng)頁)是從1998年開始出現(xiàn)的新技術(shù)。由Sun公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),是基于JavaServlet以及整個(gè)Java體系的web開發(fā)技術(shù)。在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*。html)中加入腳本片段和JSP標(biāo)記(Tag),構(gòu)成JSP網(wǎng)頁(*。jsp)。JSP技術(shù)為創(chuàng)建顯示動(dòng)態(tài)生成內(nèi)容的web頁面提供了簡便的方法。JSP作為Java家族的一員,承襲了Java的特點(diǎn),即跨平臺(tái)的特性,也即一次編譯,到處運(yùn)行。在國外,己經(jīng)大量使用JSP作為網(wǎng)絡(luò)應(yīng)用程序的開發(fā)工具,而在國內(nèi),盡管JSP還不是主流開發(fā)技術(shù),但是由于JSP的強(qiáng)大優(yōu)勢,許多網(wǎng)站都已經(jīng)準(zhǔn)備轉(zhuǎn)向JSP,利用JSP來開發(fā)動(dòng)態(tài)網(wǎng)站.3。4.2JSP工作原理JSP是面向服務(wù)器的,因此支持任何瀏覽器.當(dāng)Web服務(wù)器和JSP引擎遇到訪問JSP網(wǎng)頁的請(qǐng)求時(shí),JSP引擎將請(qǐng)求對(duì)象發(fā)送給服務(wù)器端的相關(guān)組件,比如JavaBean組件、Servlet或EJB等,然后由服務(wù)器端組件處理這些請(qǐng)示,可能需要從數(shù)據(jù)庫或數(shù)據(jù)存儲(chǔ)中檢索信息,然后服務(wù)器端組件再將響應(yīng)對(duì)象返回JSP引擎.JSP引擎將響應(yīng)對(duì)象傳遞給JSP頁面,根據(jù)JSP頁面的HTML格式完成數(shù)據(jù)編排,最后Web服務(wù)器和JSP引擎將格式化后的JSP頁面以HTML格式返回客戶瀏覽器。這就是當(dāng)前網(wǎng)站構(gòu)建中廣泛采用的瀏覽器——Web服務(wù)器—-后臺(tái)數(shù)據(jù)庫的三層架構(gòu)模式。因?yàn)镴SP所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果。3。4.3JSP體系結(jié)構(gòu)JSP網(wǎng)站開發(fā)標(biāo)準(zhǔn)給出了兩種使用JSP的技術(shù),可以歸納為模式一、模式二。模式一:JSP+JavaBeans技術(shù)在這種模式中,JSP頁面獨(dú)自響應(yīng)請(qǐng)求并將處理結(jié)果返回給客戶。Bean處理所有數(shù)據(jù)訪問,JSP實(shí)現(xiàn)頁面的表現(xiàn),以實(shí)現(xiàn)內(nèi)容生成與顯示相分離。當(dāng)處理復(fù)雜的大型應(yīng)用時(shí),頁面被嵌入大量的腳本或Java代碼段,當(dāng)需要處理的商業(yè)邏輯復(fù)雜時(shí),這種情況會(huì)變得非常糟糕,大量的內(nèi)嵌代碼使得頁面程序變得復(fù)雜,對(duì)于前端界面設(shè)計(jì)人員,這是不可思議的事情.所以模式一可用于小型應(yīng)用,不能夠滿足大型應(yīng)用的需要。模式二:JSP+Servlet+JavaBeans技術(shù)Servlet技術(shù)是一種采用Java技術(shù)來實(shí)現(xiàn)CGI功能的一種技術(shù),Servlet技術(shù)非常適于服務(wù)器端的處理和編程,并且Servlet會(huì)長期駐留在內(nèi)存。從開發(fā)的觀點(diǎn)看,模式二具有更清晰的頁面表現(xiàn),清楚的開發(fā)者角色劃分,在大規(guī)模項(xiàng)目開發(fā)中,模式二更被采用,模式二也更符合當(dāng)前流行的MVC結(jié)構(gòu)(Model/view/controller),其中Servlet對(duì)應(yīng)controller,處于控制者的位置,處理HTTP請(qǐng)求,負(fù)責(zé)生成JSP中使用的Beans組件或?qū)ο?,并判斷?yīng)將請(qǐng)求傳遞給哪個(gè)JSP等,JSP對(duì)應(yīng)view,負(fù)責(zé)生成最終的動(dòng)態(tài)網(wǎng)頁并返回給瀏覽器.而JavaBeans對(duì)應(yīng)的是Model,實(shí)現(xiàn)各個(gè)具體的應(yīng)用邏輯與功能.3。4。4JSP的特點(diǎn)簡化的頁面生成技術(shù).JSP頁面用標(biāo)準(zhǔn)的HTML或XML命令來處理頁面的格式化和布局設(shè)計(jì),而用類似HTML、XML的標(biāo)記和Java語言編寫的腳本程序生成頁面內(nèi)容。這使得頁面形式與頁面內(nèi)容互相獨(dú)立,非常有利于大型項(xiàng)目的分工合作.與Java平臺(tái)有機(jī)集成。JSP技術(shù)是Java2平臺(tái)的重要組成部分,JSP使用Java語言作為它的腳本語言。在JSP頁面中可以使用幾乎所有的Java組件和JavaAPI,這就能充分發(fā)揮出Java語言的強(qiáng)大功能。使用JSP技術(shù)可以創(chuàng)建具有高度可伸縮性和可靠性的Web應(yīng)用程序。硬件平臺(tái)和服務(wù)器無關(guān)性。JSP作為Java家族的一員,秉承了Java技術(shù)的“一次編寫,隨處可用(WriteOnce,RumAnywhere)”的特性,可以運(yùn)行于大多數(shù)流行的操作系統(tǒng)平臺(tái)及Web服務(wù)器,這種與服務(wù)器硬件和操作系統(tǒng)平臺(tái)的無關(guān)性是JSP相對(duì)于其它動(dòng)態(tài)網(wǎng)頁技術(shù)最大的一個(gè)優(yōu)點(diǎn)。功能可擴(kuò)展性。如同Microsoft的JSP技術(shù)可以通過ActiveX/COM組件來擴(kuò)展功能一樣,JSP可以通過JavaBean和EJB(EnterpriseJavaBean)以及自定義的標(biāo)記來擴(kuò)展功能。JSP可以通過JDBC,與諸如Oracle、SQLServer這樣的大型關(guān)系數(shù)據(jù)庫進(jìn)行連接。JSP提供了一些隱含對(duì)象。這些隱含對(duì)象在JSP頁面中可以直接引用,而不必首先聲明。利用JSP提供的這些隱含對(duì)象,可以使腳本功能更加強(qiáng)大,并且編程更加容易、方便。例如,利用request對(duì)象,可以很容易地接收用戶在HTML表單中提交的信息。3。4.5SQLSERVER2000數(shù)據(jù)庫SQLServer是由Microsoft開發(fā)和推廣的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(DBMS),它最初是由Microsoft、Sybase和Ashton—Tate三家公司共同開發(fā)的,并于1988年推出了第一個(gè)OS/2版本。SQLServer近年來不斷更新版本,1996年,Microsoft推出了SQLServer6。5版本;1998年,SQLServer7.0版本和用戶見面;SQLServer2000是Microsoft公司于2000年推出的最新版本。SQLServer特點(diǎn):1.真正的客戶機(jī)/服務(wù)器體系結(jié)構(gòu)。2.圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡單。3.豐富的編程接口工具,為用戶進(jìn)行程序設(shè)計(jì)提供了更大的選擇余地。4.SQLServer與WindowsNT完全集成,利用了NT的許多功能,如發(fā)送和接受消息,管理登錄安全性等。SQLServer也可以很好地與MicrosoftBackOffice產(chǎn)品集成.5.具有很好的伸縮性,可跨越從運(yùn)行Windows95/98的膝上型電腦到運(yùn)行Windows2000的大型多處理器等多種平臺(tái)使用。6.對(duì)Web技術(shù)的支持,使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到Web頁面上。7.SQLServer提供數(shù)據(jù)倉庫功能,這個(gè)功能只在Oracle和其他更昂貴的DBMS中才有。3.4。6系統(tǒng)數(shù)據(jù)庫連接技術(shù)JDBCJDBC技術(shù)是JavaDataBaseConnectivity的縮寫,它是SUN公司提供的一種支持基本SQL功能的通用的應(yīng)用程序接口(ApplicationProgrammingInterface)。它由一組用Java語言編寫的類和接口組成。通過這些類和接口,程序開發(fā)人員可以在Java語言中方便地建立與數(shù)據(jù)庫的鏈接,通過執(zhí)行相應(yīng)SQL語句,完成對(duì)不同數(shù)據(jù)庫的訪問.因此,開發(fā)人員使用JDBCAPI可以不必編寫一個(gè)應(yīng)用程序來訪問Sybase數(shù)據(jù)庫,又另外編寫一個(gè)應(yīng)用程序去訪問Oracle數(shù)據(jù)庫,再寫一個(gè)應(yīng)用程序訪問Microsoft的SQLServer。不但如此,使用Java語言編寫的應(yīng)用程序可以在任何支持Java的平臺(tái)上運(yùn)行,不必在不同的平臺(tái)上開發(fā)不同的應(yīng)用程序。簡單地說,JDBC能完成下列三件事:同一個(gè)數(shù)據(jù)庫建立連接;向數(shù)據(jù)庫建立連接;處理數(shù)據(jù)庫返回的結(jié)果。JDBC是一種通用低層的應(yīng)用程序編程接口,它在不同的數(shù)據(jù)庫功能模塊的層次上提供一個(gè)統(tǒng)一的用戶界面。說JDBC是一處低級(jí)的API,是指它直接調(diào)用SQL命令,它比其他的一些數(shù)據(jù)庫連接API要容易使用些,但它有同樣可以作為更高級(jí)的,用戶辦面更友好的API或開發(fā)工具基礎(chǔ)。很多可視化的Java開發(fā)工具,如VisualAgeForJava、VisualCafé、J++等都提供了基于JDBC的更面向用戶的類和包,直接將關(guān)系數(shù)據(jù)庫的表或視圖映射為Java類,程序員通過可視化工具直接對(duì)Java對(duì)象進(jìn)行操作,而真正需要的SQL調(diào)用則根據(jù)程序員發(fā)出的對(duì)對(duì)象的各種屬性、方法的操作來自動(dòng)產(chǎn)生。另一種使用JDBCAPI的方式為,用戶程序可以提供一個(gè)界面(如菜單等)讓用戶選擇對(duì)數(shù)據(jù)庫進(jìn)行的操作,選中一個(gè)任務(wù)后,提示用戶輸入一些必要的信息,然后根據(jù)用戶的輸入產(chǎn)生相應(yīng)的SQL命令以及Java程序。通過這處方式,用戶可以完成對(duì)數(shù)據(jù)庫的操作,即使他并不了解SQL語法以及JDBC編程.數(shù)據(jù)庫訪問的三層結(jié)構(gòu)如圖5.1所示,瀏覽器端程序要訪問數(shù)據(jù)庫,首先通過中間件,然后由中間件對(duì)數(shù)據(jù)庫操作權(quán)限進(jìn)行認(rèn)證,認(rèn)證通過才能對(duì)數(shù)據(jù)庫進(jìn)行操作。圖5.1使用中間件的數(shù)據(jù)庫訪問三層結(jié)構(gòu)用戶對(duì)數(shù)據(jù)庫的存取權(quán)限認(rèn)證是中間件中完成,對(duì)數(shù)據(jù)庫的查詢、插入、更新和刪除操作等都封裝在中間件中,該中間件位于服務(wù)器端,中間件對(duì)數(shù)據(jù)庫進(jìn)行操作后,再將處理結(jié)果通過Web服務(wù)器返回到瀏覽器端用戶.這樣,在用戶端輸入的用戶名和密碼,可以通過加密算法進(jìn)行加密后在網(wǎng)絡(luò)上傳輸,在中間件中進(jìn)行解密認(rèn)證,然后再進(jìn)行數(shù)據(jù)庫的存取操作,數(shù)據(jù)庫存取權(quán)限的用戶名和密碼出現(xiàn)在位于服務(wù)器端的中間件中,這樣就更加安全。本系統(tǒng)采用的正是這樣的三層結(jié)構(gòu)的數(shù)據(jù)庫訪問模式。在三層模型中,命令將被發(fā)送到服務(wù)的”中間層",而”中間層”將SQL語句發(fā)送到數(shù)據(jù)庫.數(shù)據(jù)庫處理SQL語句并將結(jié)果返回”中間層”,然后”中間層”將它們返回用戶。其模型如圖5。2所示.圖5.2JDBC的三層模型因?yàn)椤敝虚g層"可以進(jìn)行對(duì)訪問的控制并協(xié)同數(shù)據(jù)庫的更新,并且可以使用一個(gè)易用的高層API,這個(gè)API可以由“中間層”進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成低層的調(diào)用。所以在許多種情況下,三層模型可以提供更好的性能,本系統(tǒng)中所采用的就是此種模型。JDBC是JAVA應(yīng)用程序與數(shù)據(jù)庫的溝通橋梁.它提供了三項(xiàng)服務(wù)功能:一、與數(shù)據(jù)庫建立連接。二、將SQL語句傳遞給數(shù)據(jù)庫。三、從數(shù)據(jù)庫取得SQL語句的執(zhí)行結(jié)果.當(dāng)JDBC要與數(shù)據(jù)庫建立連接前,首先,它必須先取得連接此數(shù)據(jù)庫的JDBC驅(qū)動(dòng)程序,Class。forName()即是在執(zhí)行此項(xiàng)工作。建立數(shù)據(jù)庫連接的第一步驟就是將JDBC驅(qū)動(dòng)程序的類載入至JVM(JavaVirtualLMachine)中,本系統(tǒng)中利用java.lang。Class類內(nèi)的forName()靜態(tài)函數(shù)依據(jù)指定的類名稱,將JDBC驅(qū)動(dòng)程序載入進(jìn)來.完成載入驅(qū)動(dòng)程序的步驟后,必須使用java.sal。DriverManager類所提供的getConnection()靜態(tài)函數(shù),取得與數(shù)據(jù)庫間的連接對(duì)象.此連接對(duì)象的類類型為java。sal.Connection,必須通過它才能將SQL指令傳遞給數(shù)據(jù)庫,而執(zhí)行結(jié)果也需要通過連接對(duì)象來取得。當(dāng)取得連接對(duì)象后,還必須取得Statement對(duì)象才能對(duì)數(shù)據(jù)庫執(zhí)行SQL指令.Statement主要實(shí)現(xiàn)兩個(gè)功能:執(zhí)行SQL語句以及取得執(zhí)行結(jié)果。在java。sql.Statement的sql對(duì)象中執(zhí)行查詢或修改命令的函數(shù)后傳回的是一個(gè)ResultSet對(duì)象,這個(gè)對(duì)象提供了一個(gè)存取SQL執(zhí)行結(jié)果的管道,以便通過它將表格數(shù)據(jù)從數(shù)據(jù)庫中取出。每個(gè)Statement對(duì)象只能產(chǎn)生一個(gè)ResultSet對(duì)象。數(shù)據(jù)庫連接如圖5。3所示:圖5。3數(shù)據(jù)庫的連接處理數(shù)據(jù)庫的連接處理具體實(shí)現(xiàn)如下://建立JDBC——ODBC橋sun.jdbc.odbc。JdbcOdbcDriver;//橋建立不成功時(shí)的錯(cuò)誤處理catch(ClassNotFoundExceptionevent){}//建立與數(shù)據(jù)庫的連接,并發(fā)送SQL查詢語句,將結(jié)果保存到rs對(duì)象中 Con=建立JDBC——ODBC橋 Sql=SQL查詢語句 執(zhí)行查詢 Rs=返回結(jié)果//SQL出錯(cuò)處理 catch(SQLExceptione1){}有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBCAPI,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個(gè)程序,為訪問Oracle數(shù)據(jù)庫又專門寫一個(gè)程序,或?yàn)樵L問Informix數(shù)據(jù)庫又編寫另一個(gè)程序等等,程序員只需用JDBCAPI寫一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫發(fā)送SQL調(diào)用。同時(shí),將Java語言和JDBC結(jié)合起來使程序員不必為不同的平臺(tái)編寫不同的應(yīng)用程序,只須寫一遍程序就可以讓它在任何平臺(tái)上運(yùn)行,這也是Java語言“編寫一次,處處運(yùn)行”的優(yōu)勢.Java數(shù)據(jù)庫連接體系結(jié)構(gòu)是用于Java應(yīng)用程序連接數(shù)據(jù)庫的標(biāo)準(zhǔn)方法。JDBC對(duì)Java程序員而言是API,對(duì)實(shí)現(xiàn)與數(shù)據(jù)庫連接的服務(wù)提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標(biāo)準(zhǔn)的接口,并為數(shù)據(jù)庫廠商及第三方中間件廠商實(shí)現(xiàn)與數(shù)據(jù)庫的連接提供了標(biāo)準(zhǔn)方法。JDBC使用已有的SQL標(biāo)準(zhǔn)并支持與其它數(shù)據(jù)庫連接標(biāo)準(zhǔn),如ODBC之間的橋接.JDBC實(shí)現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡單、嚴(yán)格類型定義且高性能實(shí)現(xiàn)的接口。
Java具有堅(jiān)固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動(dòng)下載等特性,是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言。所需要的只是Java應(yīng)用程序與各種不同數(shù)據(jù)庫之間進(jìn)行對(duì)話的方法。而JDBC正是作為此種用途的機(jī)制。JDBC擴(kuò)展了Java的功能.例如,用Java和JDBCAPI可以發(fā)布含有applet的網(wǎng)頁,而該applet使用的信息可能來自遠(yuǎn)程數(shù)據(jù)庫企業(yè)也可以用JDBC通過Intranet將所有職員連到一個(gè)或多個(gè)內(nèi)部數(shù)據(jù)庫中(即使這些職員所用的計(jì)算機(jī)有Windows、Macintosh和UNIX等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用Java編程語言,對(duì)從Java中便捷地訪問數(shù)據(jù)庫的要求也在日益增加.MIS管理員們都喜歡Java和JDBC的結(jié)合,因?yàn)樗剐畔鞑プ兊萌菀缀徒?jīng)濟(jì)。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫,并能便捷地存取信息,即使這些信息是儲(chǔ)存在不同數(shù)據(jù)庫管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序.對(duì)于商務(wù)上的銷售信息服務(wù),Java和JDBC可為外部客戶提供獲取信息更新的更好方法。簡單地說,JDBC可做三件事:與數(shù)據(jù)庫建立連接、發(fā)送SQL語句并處理結(jié)果.下列代碼段給出了以上三步的基本示例:Connectioncon=DriverManager。getConnection("jdbc:odbc:wombat",”login","password”);Statementstmt=con。createStatement();ResultSetrs=stmt。executeQuery("SELECTa,b,cFROMTable1");while(rs。next()){intx=rs.getInt(”a”);Strings=rs.getString(”b");floatf=rs。getFloat("c”);}上述代碼對(duì)基于JDBC的數(shù)據(jù)庫訪問做了經(jīng)典的總結(jié).3.4。7BS模式與C/S模式的比較分析C/S模式主要由客戶應(yīng)用程序(Client)、服務(wù)器管理程序(Server)和中間件(middleware)三個(gè)部件組成??蛻魬?yīng)用程序是系統(tǒng)中用戶與數(shù)據(jù)進(jìn)行交互的部件.服務(wù)器程序負(fù)責(zé)有效地管理系統(tǒng)資源,如管理一個(gè)信息數(shù)據(jù)庫,其主要工作是當(dāng)多個(gè)客戶并發(fā)地請(qǐng)求服務(wù)器上的相同資源時(shí),對(duì)這些資源進(jìn)行最優(yōu)化管理。中間件負(fù)責(zé)聯(lián)結(jié)客戶應(yīng)用程序與服務(wù)器管理程序,協(xié)同完成一個(gè)作業(yè),以滿足用戶查詢管理數(shù)據(jù)的要求。B/S模式是一種以Web技術(shù)為基礎(chǔ)的新型的MIS系統(tǒng)平臺(tái)模式。把傳統(tǒng)C/S模式中的服務(wù)器部分分解為一個(gè)數(shù)據(jù)服務(wù)器與一個(gè)或多個(gè)應(yīng)用服務(wù)器(Web服務(wù)器),從而構(gòu)成一個(gè)三層結(jié)構(gòu)的客戶服務(wù)器體系。第一層客戶機(jī)是用戶與整個(gè)系統(tǒng)的接口??蛻舻膽?yīng)用程序精簡到一個(gè)通用的瀏覽器軟件,如Netscape
Navigator,微軟公司的IE等.瀏覽器將HTML代碼轉(zhuǎn)化成圖文并茂的網(wǎng)頁.網(wǎng)頁還具備一定的交互功能,允許用戶在網(wǎng)頁提供的申請(qǐng)表上輸入信息提交給后臺(tái),并提出處理請(qǐng)求.這個(gè)后臺(tái)就是第二層的Web服務(wù)器。第二層Web服務(wù)器將啟動(dòng)相應(yīng)的進(jìn)程來響應(yīng)這一請(qǐng)求,并動(dòng)態(tài)生成一串HTML代碼,其中嵌入處理的結(jié)果,返回給客戶機(jī)的瀏覽器。如果客戶機(jī)提交的請(qǐng)求包括數(shù)據(jù)的存取,Web服務(wù)器還需與數(shù)據(jù)庫服務(wù)器協(xié)同完成這一處理工作。第三層數(shù)據(jù)庫服務(wù)器的任務(wù)類似于C/S模式,負(fù)責(zé)協(xié)調(diào)不同的Web服務(wù)器發(fā)出的SQ請(qǐng)求,管理數(shù)據(jù)庫。B/S模式的優(yōu)勢首先它簡化了客戶端。它無需象C/S模式那樣在不同的客戶機(jī)上安裝不同的客戶應(yīng)用程序,而只需安裝通用的瀏覽器軟件.這樣不但可以節(jié)省客戶機(jī)的硬盤空間與內(nèi)存,而且使安裝過程更加簡便、網(wǎng)絡(luò)結(jié)構(gòu)更加靈活.假設(shè)一個(gè)企業(yè)的決策層要開一個(gè)討論庫存問題的會(huì)議,他們只需從會(huì)議室的計(jì)算機(jī)上直接通過瀏覽器查詢數(shù)據(jù),然后顯示給大家看就可以了.甚至與會(huì)者還可以把筆記本電腦聯(lián)上會(huì)議室的網(wǎng)絡(luò)插口,自己來查詢相關(guān)的數(shù)據(jù)。其次,它簡化了系統(tǒng)的開發(fā)和維護(hù)。系統(tǒng)的開發(fā)者無須再為不同級(jí)別的用戶設(shè)計(jì)開發(fā)不同的客戶應(yīng)用程序了,只需把所有的功能都實(shí)現(xiàn)在Web服務(wù)器上,并就不同的功能為各個(gè)組別的用戶設(shè)置權(quán)限就可以了。各個(gè)用戶通過HTTP請(qǐng)求在權(quán)限范圍內(nèi)調(diào)用Web服務(wù)器上不同處理程序,從而完成對(duì)數(shù)據(jù)的查詢或修改.現(xiàn)代企業(yè)面臨著日新月異的競爭環(huán)境,對(duì)企業(yè)內(nèi)部運(yùn)作機(jī)制的更新與調(diào)整也變得逐漸頻繁。相對(duì)于C/S,B/S的維護(hù)具有更大的靈活性。當(dāng)形勢變化時(shí),它無須再為每一個(gè)現(xiàn)有的客戶應(yīng)用程序升級(jí),而只需對(duì)Web服務(wù)器上的服務(wù)處理程序進(jìn)行修訂。這樣不但可以提高公司的運(yùn)作效率,還省去了維護(hù)時(shí)協(xié)調(diào)工作的不少麻煩。如果一個(gè)公司有上千臺(tái)客戶機(jī),并且分布在不同的地點(diǎn),那么便于維護(hù)將會(huì)顯得更加重要。再次,它使用戶的操作變得更簡單。對(duì)于C/S模式,客戶應(yīng)用程序有自己特定的規(guī)格,使用者需要接受專門培訓(xùn).而采用B/S模式時(shí),客戶端只是一個(gè)簡單易用的瀏覽器軟件。無論是決策層還是操作層的人員都無需培訓(xùn),就可以直接使用。B/S模式的這種特性,還使
MIS系統(tǒng)維護(hù)的限制因素更少.最后,B/S特別適用于網(wǎng)上信息發(fā)布,使得傳統(tǒng)的MIS的功能有所擴(kuò)展.這是C/S所無法實(shí)現(xiàn)的。而這種新增的網(wǎng)上信息發(fā)布功能恰是現(xiàn)代企業(yè)所需的。這使得企業(yè)的大部分書面文件可以被電子文件取代,從而提高了企業(yè)的工作效率,使企業(yè)行政手續(xù)簡化,節(jié)省人力物力。鑒于B/S相對(duì)于C/S的先進(jìn)性,B/S逐漸成為一種流行的MIS系統(tǒng)平臺(tái)。各軟件公司紛紛推出自己的Internet方案,基于Web的財(cái)務(wù)系統(tǒng)、基于Web的ERP。一些企業(yè)已經(jīng)領(lǐng)先一步開始使用它,并且收到了一定的成效。B/S模式的新穎與流行,和在某些方面相對(duì)于C/S的巨大改進(jìn),使B/S成了MIS系統(tǒng)平臺(tái)的首選.3。5系統(tǒng)設(shè)計(jì)3。5。1首頁代碼如下:packagebean;importjava.util.ArrayList;publicclassAllBean{ SelectBeansb=newSelectBean(); ArrayListal=null; publicArrayListgetUsers(){ Stringsql="select*fromusersorderbyiddesc"; Stringargs[]={"id”,”name","age",”sex”,”phone”,"address","yearcard”,”begindate”,"enddate”,"amount","loss”}; al=sb.select(sql,args); returnal; } publicArrayListgetUsers(Stringid){ Stringsql=”select*fromuserswhereid="+id; Stringargs[]={"id",”name”,”age”,"sex”,”phone”,”address",”yearcard”,"begindate”,"enddate”,”amount","loss”}; al=sb.select(args,sql); returnal; } publicArrayListgetUsersId(Stringid){ Stringsql=”select*fromuserswhereid=”+id; Stringargs[]={”id","name","age”,”sex”,"phone","address”,"yearcard","begindate","enddate”,"amount",”loss”}; al=sb。select(sql,args); returnal; } publicArrayListgetUsersName(Stringname){ Stringsql=”select*fromuserswherenamelike'%"+name+"%'orderbyiddesc"; Stringargs[]={”id",”name”,"age",”sex","phone",”address",”yearcard","begindate”,"enddate",”amount","loss"}; al=sb.select(sql,args); returnal; } publicArrayListgetItem(){ Stringsql="select*fromitemorderbyiddesc"; Stringargs[]={"id”,”name”,"price”}; al=sb.select(sql,args); returnal; } publicArrayListgetItem(Stringid){ Stringsql="select*fromitemwhereid=”+id; Stringargs[]={"id”,”name","price"}; al=sb。select(args,sql); returnal; } publicArrayListgetYearcard(){ Stringsql="select*fromyearcardwhereid=1"; Stringargs[]={”id”,”price"}; al=sb.select(args,sql); returnal; } publicArrayListgetFlaw(Stringid){ Stringsql="select*fromflawwhereid=”+id; Stringargs[]={”id”,”softwareid",”usersid”,”content”,”reason","restoration”,”times”}; al=sb。select(args,sql); returnal; } publicArrayListgetFlawSoftware(Stringsoftwareid){ Stringsql="select*fromflawwheresoftwareid='"+softwareid+”’orderbyiddesc”; Stringargs[]={"id”,"softwareid","usersid","content",”reason”,"restoration”,"times”}; al=sb.select(sql,args); returnal; } 3.5。2公司概況代碼如下:publicArrayListgetConsume(){ Stringsql=”select*fromconsumeorderbyiddesc”; Stringargs[]={"id",”usersid”,"name",”price”,"begindate",”enddate",”sums"}; al=sb.select(sql,args); returnal; } publicArrayListgetConsume(Stringusersid){ Stringsql=”select*fromconsumewhereusersid=”+usersid+"andpriceisnotnullandenddateisnullorderbyiddesc"; Stringargs[]={"id”,”usersid","name",”price","begindate","enddate","sums”}; al=sb.select(sql,args); returnal; } publicArrayListgetConsumeEnd(Stringusersid){ Stringsql=”select*fromconsumewhereusersid=”+usersid+"andpriceisnotnullandenddateisnotnullandsumsisnotnullorderbyiddesc"; Stringargs[]={"id”,”usersid","name”,”price”,"begindate",”enddate","sums”}; al=sb。select(sql,args); returnal; } publicArrayListgetConsumeXiao(Stringusersid){ Stringsql="select*fromconsumewhereusersid=”+usersid+”andpriceisnotnullandenddateisnotnullandsumsisnotnullanddatediff(day,getdate(),enddate)=0orderbyiddesc"; Stringargs[]={"id”,"usersid","name”,”price”,"begindate”,”enddate”,”sums"}; al=sb。select(sql,args); returnal; } publicArrayListgetConsumeke(){ Stringsql="select*fromconsumewherepriceisnotnullandenddateisnotnullandsumsisnotnullorderbyiddesc”; Stringargs[]={"id”,"usersid","name”,"price”,”begindate",”enddate”,"sums"}; al=sb.select(sql,args); returnal; } publicArrayListgetConsumeke(Stringtimes){ Stringsql=”select*fromconsumewherepriceisnotnullandenddateisnotnullandsumsisnotnullanddatediff(day,’”+times+"’,enddate)=0orderbyiddesc"; Stringargs[]={"id”,"usersid",”name”,”price",”begindate”,"enddate”,"sums”}; al=sb.select(sql,args); returnal; }3。5.3新聞中心代碼如下:packagebean;importjava.sql.Connection;importjava.sql.ResultSet;importjava。sql.SQLException;importjava。sql。Statement;importjava.util。ArrayList;importutil.DBConn;publicclassInsertUpdateDelBean{ Connectionconn=null; Statementst=null; ResultSetrs=null; publicintinsertANDupdateANDdel(Stringsql){ inttemp=0; conn=DBConn。getConn(); try{ st=conn.createStatement(); temp=st.executeUpdate(sql); }catch(SQLExceptione){ //TODO自動(dòng)生成catch塊 e.printStackTrace(); temp=—1; }finally{ DBConn.close(conn,st,rs); } returntemp; }}3.5.4用戶注冊代碼如下:packagebean;importjava。sql。Connection;importjava.sql.ResultSet;importjava。sql.SQLException;importjava。sql。Statement;importjava。util.ArrayList;importutil.DBConn;publicclassSelectBean{ Connectionconn=null; Statementst=null; ResultSetrs=null; /** * *@paramsql *@paramargs *@returnArrayList *@獲取多條信息 */ publicArrayListselect(Stringsql,String[]args){ ArrayListal=newArrayList(); conn=DBConn。getConn(); try{ st=conn。createStatement(); rs=st.executeQuery(sql); while(rs.next()){ ArrayListalRow=newArrayList(); for(inti=0;i<args.length;i++){ alRow.add(rs。getString(args[i])); } al。add(alRow); } }catch(SQLExceptione){ //TODO自動(dòng)生成catch塊 e.printStackTrace(); }finally{ DBConn。close(conn,st,rs); } returnal; } /** * *@paramsql *@paramargs *@returnArrayList *@獲取一條信息 */ publicArrayListselect(String[]args,Stringsql){ ArrayListal=newArrayList(); conn=DBConn.getConn(); try{ st=conn。createStatement(); rs=st。executeQuery(sql); rs.next(); for(inti=0;i<args。length;i++){ al.add(rs。getString(args[i])); } }catch(SQLExceptione){ //TODO自動(dòng)生成catch塊 }finally{ DBConn。close(conn,st,rs); } returnal; }}3。5。5用戶登陸該過程的流程圖如下圖:輸入姓名及口令輸入姓名及口令記錄在口令表嗎中進(jìn)入主界面繼續(xù)嗎結(jié)束開始提示信息NYN代碼如下:packageservlet;importjava.io。IOException;importjava。util.ArrayList;importjavax.servlet。ServletException;importjavax。servlet。http。HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax。servlet.http.HttpServletResponse;importjavax。servlet.http.HttpSession;importbean。SelectBean;publicclassAdminLoginServletextendsHttpServlet{ /** *Constructoroftheobject. */ publicAdminLoginServlet(){ super(); } /** *Destructionoftheservlet.<br〉 */ publicvoiddestroy(){ super。destroy();//Justputs”destroy"stringinlog //Putyourcodehere } /** *ThedoGetmethodoftheservlet。<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget。 * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doPost(request,response); } /** *ThedoPostmethodoftheservlet?!碽r> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost。 * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response。setContentType("text/html;charset=gb2312"); request。setCharacterEncoding("gb2312”); Stringname=request.getParameter("name"); Stringpwd=request.getParameter("pwd”); Stringsql=”select*fromadminwherename='”+name+"'andpwd='"+pwd+”’”; Stringargs[]={”id","name","pwd",”popedom"}; SelectBeansb=newSelectBean(); ArrayListal=sb.select(args,sql); Stringstr=””; if(al==null||al.size()==0){ str=”/admin/index。jsp"; request.setAttribute(”message”,"用戶名或密碼錯(cuò)誤!"); }else{ str=”/admin/modifyname.jsp"; HttpSessionsession=request。getSession(); session.setAttribute(”adminlogin",al); } request.getRequestDispatcher(str).forward(request,response); }3。5.6后臺(tái)登陸當(dāng)系統(tǒng)登陸時(shí),首先出現(xiàn)的是一個(gè)用戶權(quán)限登陸的界面,權(quán)限設(shè)置主要是維護(hù)系統(tǒng)的安全性和完整性,沒有權(quán)限的操作員不能對(duì)相應(yīng)的窗口進(jìn)行操作.如下圖所示:代碼如下:packageservlet;importjava.io.IOException;importjava.io。PrintWriter;importjava。text。SimpleDateFormat;importjava。util.Calendar;importjava.util。Date;importjavax。servlet。RequestDispatcher;importjavax.servlet.ServletException;importjavax。servlet。http.HttpServlet;importjavax.servlet。http。HttpServletRequest;importjavax.servlet。http。HttpServletResponse;importutil。Validate;importbean。InsertUpdateDelBean;publicclassAmountServletextendsHttpServlet{ /** *Constructoroftheobject。 */ publicAmountServlet(){ super(); } /** *Destructionoftheservlet?!碽r〉 */ publicvoiddestroy(){ super.destroy();//Justputs”destroy"stringinlog //Putyourcodehere } /** *ThedoGetmethodoftheservlet?!碽r〉 * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget。 * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doPost(request,response); } /** *ThedoPostmethodoftheservlet?!碽r〉 * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response。setContentType("text/html;charset=gb2312”); request。setCharacterEncoding("gb2312”); Stringid=request.getParameter("id"); Stringamount=request。getParameter("amount"); Stringsql=”updateuserssetamount=amount+”+amount+"whereid=”+id; InsertUpdateDelBeanib=newInsertUpdateDelBean(); ib.insertANDupdateANDdel(sql); sql=”insertintopayment(usersid,name,price)values("+id+",'會(huì)員卡續(xù)費(fèi)',"+amount+”)”; ib。insertANDupdateANDdel(sql); request。setAttribute(”message”,"操作成功!”); RequestDispatcherrd=request.getRequestDispatcher(”/admin/users_amount。jsp"); rd.forward(request,response); }3。5.7新聞中心管理身份驗(yàn)證通過以后,點(diǎn)擊可以使用系統(tǒng)的基本信息管理界面,這是管理員主要的輸入信息部分,它即可以對(duì)數(shù)據(jù)進(jìn)行輸入。填寫好各項(xiàng)信息后,單擊保存按鈕,系統(tǒng)將對(duì)這些信息進(jìn)行處理。界面見下圖:代碼如下:packageservlet;importjava。io.IOException;importjava.util。ArrayList;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http。HttpServlet;importjavax.servlet。http。HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importutil。Validate;importbean.AllBean;importbean。InsertUpdateDelBean;importbean.SelectBean;publicclassBegindateServletextendsHttpServlet{ /** *Constructoroftheobject. */ publicBegindateServlet(){ super(); } /** *Destructionoftheservlet.<br〉 */ publicvoiddestroy(){ super。destroy();//Justputs"destroy"stringinlog //Putyourcodehere } /** *ThedoGetmethodoftheservlet。<br〉 * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doPost(request,response); } /** *ThedoPostmethodoftheservlet.〈br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response。setContentType(”text/html;charset=gb2312”); request.setCharacterEncoding(”gb2312"); Stringusersid=request.getParameter("usersid”); Stringitem=request.getParameter("item”); Validatev=newValidate(); AllBeanab=newAllBean(); SelectBeansb=newSelectBean(); ArrayListalItem=ab。getItem(item); if(alItem。get(2)==null||alItem。get(2)。equals(”")){ Stringsql="select*fromuserswheredatediff(day,getdate(),begindate)〈0anddatediff(day,getdate(),enddate)〉0andid="+usersid; Stringargs[]={"id”,"name”,"age”,”sex","phone",”address”,"yearcard”,”begindate”,"enddate","amount”,"loss”}; ArrayListal=sb。select(args,sql); if(al==null||al.size()==0){ request。setAttribute("message”,”您沒有辦理年卡或年卡已到期,請(qǐng)續(xù)辦!"); }else{ sql="insertintoconsume(usersid,name)values(’”+usersid+"',’"+alItem.get(1)+"')"; InsertUpdateDelBeanib=newInsertUpdateDelBean(); ib。insertANDupdateANDdel(sql); request.setAttribute("message”,"操作成功!"); } }else{ Stringsql=”select*fromconsumewhereusersid="+usersid+”andname='"+alItem.get(1)+"’andDATEDIFF(day,begindate,getdate())=0andenddateisnull”; Stringargs[]={”id",”usersid",”name",”price","begindate”,”enddate”,”sums”}; ArrayListal=sb.select(sql,args); if(al==null||al.size()==0){ sql=”insertintoconsume(usersid,name,price,begindate)values('”+usersid+”’,’"+alItem.get(1)+”’,"+alItem。get(2)+",'"+v。getSystemDate()+”')”; InsertUpdateDelBeanib=newInsertUpdateDelBean(); ib.insertANDupdateANDdel(sql); request.setAttribute(”message”,”操作成功!"); }else{ request。setAttribute(”message","此項(xiàng)目開始時(shí)間已記錄,請(qǐng)結(jié)帳后在重新消費(fèi)!"); } }3.5.8公司概況管理點(diǎn)擊可以使用系統(tǒng)的基本信息管理界面,這是管理員主要的輸入信息部分,它即可以對(duì)數(shù)據(jù)進(jìn)行輸入。填寫好各項(xiàng)信息后,單擊保存按鈕,系統(tǒng)將對(duì)這些信息進(jìn)行處理.界面見下圖:代碼如下:packageservlet;importjava。io.IOException;importjava.util.ArrayList;importjavax。servlet.RequestDispatcher;importjavax.servlet。ServletException;importjavax。servlet。http.HttpServlet;importjavax.servlet。http.HttpServletRequest;importjavax。servlet。http。HttpServletResponse;importbean。AllBean;importbean。InsertUpdateDelBean;publicclassDelServletextendsHttpServlet{ /** *Constructoroftheobject. */ publicDelServlet(){ super(); } /** *Destructionoftheservlet?!碽r〉 */ publicvoiddestroy(){ super.destroy();//Justp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 12《干點(diǎn)家務(wù)活》(說課稿)2023-2024學(xué)年統(tǒng)編版道德與法治一年級(jí)下冊
- 2024-2025年高中化學(xué) 專題3 第4單元 難溶電解質(zhì)的沉淀溶解平衡說課稿 蘇教版選修4001
- 產(chǎn)需對(duì)接合作協(xié)議文本
- 2024-2025學(xué)年高中英語 Unit2 Growing pains 英美文化欣賞說課稿 牛津譯林版必修1
- 2024-2025學(xué)年新教材高中地理 第5章 環(huán)境與發(fā)展 章末小結(jié)與測評(píng)說課稿 新人教版必修2
- 二零二五年度酒店整體租賃與智能酒店系統(tǒng)采購合同3篇
- 2023三年級(jí)數(shù)學(xué)上冊 6 多位數(shù)乘一位數(shù) 2筆算乘法第7課時(shí) 解決問題(2)說課稿 新人教版
- 2023-2024學(xué)年清華版(2012)信息技術(shù)三年級(jí)上冊 第四單元《13課 曲項(xiàng)向天歌-輸入、設(shè)置文字》說課稿001
- 2024-2025學(xué)年八年級(jí)歷史下冊 第三單元 中國特色社會(huì)主義道路 第7課 偉大的歷史轉(zhuǎn)折說課稿 新人教版
- 二零二五年度土地租賃合同(含稅費(fèi)計(jì)算)
- 2025年度高端商務(wù)車輛聘用司機(jī)勞動(dòng)合同模板(專業(yè)版)4篇
- GB/T 45107-2024表土剝離及其再利用技術(shù)要求
- 2025長江航道工程局招聘101人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年黑龍江哈爾濱市面向社會(huì)招聘社區(qū)工作者1598人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 執(zhí)行總經(jīng)理崗位職責(zé)
- 《妊娠期惡心嘔吐及妊娠劇吐管理指南(2024年)》解讀
- 《黑神話:悟空》跨文化傳播策略與路徑研究
- 《古希臘文明》課件
- 居家養(yǎng)老上門服務(wù)投標(biāo)文件
- 長沙市公安局交通警察支隊(duì)招聘普通雇員筆試真題2023
- 2025年高考語文作文滿分范文6篇
評(píng)論
0/150
提交評(píng)論