版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單位代碼10642密級公開學號200820174001學士學位論文
企、事業(yè)單位信息化規(guī)劃與建設(shè)論文作者:賀鳳林指導教師:孔世明學科專業(yè):計算機科學與技術(shù)職教師資本科提交論文日期:2012年3月7日論文答辯日期:2012年4月11日學位授予單位:重慶文理學院中國·重慶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è)重要性與指導原則 8HYPERLINK\l”_Toc224997765”2.1建設(shè)的重要性 8_Toc224997767”3、企業(yè)門戶網(wǎng)站建設(shè)整體設(shè)想 113.1設(shè)計思想 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后臺登陸 33_Toc224997787”3.5。8公司概況管理 38HYPERLINK\l”_Toc224997788"3。5.9注冊會員管理 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)站?幾乎所有有遠見的企業(yè)家都會毫不猶豫地說:當然需要!但一個不容忽視的HYPERLINK””問題是,許多企業(yè)僅僅停留在”有網(wǎng)站"的階段,他們并沒有意識到一個界面粗糙、HYPERLINK”/”內(nèi)容單一、流程混亂、安全性差的網(wǎng)站,其實給訪問者留下了極差的感覺,嚴重破壞了企業(yè)的形象。怎么樣的企業(yè)門戶網(wǎng)站才算成功?HYPERLINK”/”時代財富顧問公司在為眾多企業(yè)設(shè)計網(wǎng)站的過程中,HYPERLINK”/work/"總結(jié)出了一套完整的、有較高參考價值的《企業(yè)門戶網(wǎng)站評定標準》,期望以此引起企業(yè)界對自身網(wǎng)站的重視,使企業(yè)門戶網(wǎng)站真正成為企業(yè)宣傳、管理、營銷的有效工具。企業(yè)門戶網(wǎng)站定義:主要為了外界了解企業(yè)自身、樹立良好企業(yè)形象、并適當提供一定服務(wù)的網(wǎng)站.根據(jù)行業(yè)特性的差別,以及企業(yè)的建站目的和主要目標群體的不同,大致可以把企業(yè)門戶網(wǎng)站分為:基本信息型:主要面向客戶、業(yè)界人士或者普通瀏覽者,以介紹企業(yè)的基本資料、幫助樹立企業(yè)形象為主;也可以適當提供行業(yè)內(nèi)的新聞或者知識信息。這種類型網(wǎng)站通常也被形象的比喻為企業(yè)的"WEBCatalog”。HYPERLINK”/dianzijixie/”電子商務(wù)型:主要面向供應(yīng)商、客戶或者企業(yè)產(chǎn)品(服務(wù))的消費群體,以提供某種直屬于企業(yè)業(yè)務(wù)范圍的服務(wù)或交易、或者為業(yè)務(wù)服務(wù)的服務(wù)或者交易為主;這樣的網(wǎng)站可以說是正處于電子商務(wù)化的一個中間階段,由于行業(yè)特色和企業(yè)投入的深度廣度的不同,其電子商務(wù)化程度可能處于從比較初級的服務(wù)支持、產(chǎn)品列表到比較高級的網(wǎng)上支付的其中某一階段.通常這種類型可以形象的稱為"網(wǎng)上XX企業(yè)”。例如,網(wǎng)上銀行、網(wǎng)上酒店等。多媒體廣告型:主要面向客戶或者企業(yè)產(chǎn)品(服務(wù))的消費群體,以宣傳企業(yè)的核心品牌形象或者主要產(chǎn)品(服務(wù))為主。這種類型無論從目的上還是實際表現(xiàn)手法上相對于普通網(wǎng)站而言更像一個平面廣告或者電視廣告,因此用"多媒體廣告"來稱呼這種類型的網(wǎng)站更貼切一點。在實際HYPERLINK”http://"應(yīng)用中,很多網(wǎng)站往往不能簡單的歸為某一種類型,無論是建站目的還是表現(xiàn)形式都可能涵蓋了兩種或兩種以上類型;對于這種企業(yè)門戶網(wǎng)站,可以按上述類型的區(qū)別劃分為不同的部分,每一個部分都基本上可以認為是一個較為完整的網(wǎng)站類型。1.2建設(shè)理論概述企業(yè)門戶網(wǎng)站第一原則:目的性Intension必須有明確合理的建站目的和目標群體。任何一個網(wǎng)站,必須首先具有明確的目的和目標群體.網(wǎng)站是面對客戶、供應(yīng)商、消費者還是全部?主要目的是為了介紹企業(yè)、宣傳某種產(chǎn)品還是為了試驗電子商務(wù)?如果目的不是唯一的,還應(yīng)該清楚的列出不同目的的輕重關(guān)系.建站包括類型的選擇、內(nèi)容功能的籌備、界面設(shè)計等各個方面都受到目的性的直接,且從不請假.一個網(wǎng)站又是一個24小時營業(yè)的商店,讓您的顧客在任何時候都能買到東西,這樣,您的顧客會感激您為他們提供了方便。爭取新客戶首先,想一想自己所從事的行業(yè)。然后問自己:在一億人中,有一個人正需要找到您所能提供的服務(wù),可是,他能正好找到貴公司的機率有多大呢?如果您沒有自己的網(wǎng)站的話,這種機率可能近似于零。
3)服務(wù)現(xiàn)有的客戶一個網(wǎng)站實際上可以提高您對客戶服務(wù)的效率。它可以回答大多數(shù)客戶經(jīng)常向您提出的問題,您可以讓您的客戶上您的網(wǎng)站去了解他們所關(guān)心的問題,這樣您就可以騰出時間來去做更需要您做的事情,比如企業(yè)管理.
4)增加利潤一個網(wǎng)上商店自然會給您帶來利潤,您的成本銷售比將大大地降低。也就是銷售成本的降低。降低開銷和成本自然意味著利潤的增多。即使您不是一個生產(chǎn)銷售型企業(yè),也可以通過網(wǎng)上的廣告效應(yīng)為您帶來業(yè)務(wù),從而增加利潤.
5)降低成本用網(wǎng)站來降低成本是一種有效的競爭手段.預(yù)算一下每月登一個單頁的廣告需花費10000元,另外每月做一次半版的報紙廣告,花費大約15000元,這樣每月的廣告支出將是25000元。有了自己的網(wǎng)站后,您就可以減少單頁傳單和報紙廣告的版面,并使更多的人看到您企業(yè)的廣告,同時,精確的了解反饋的情況,最快地做出反映。這樣,成本減少了,而更多未來的新的商機增多了。同時,如果自己企業(yè)不想成立專屬的網(wǎng)站建設(shè)部門,完全可以尋找專業(yè)的網(wǎng)站建設(shè)公司來服務(wù)自己.相比之下的資金投入更為經(jīng)濟合理.6)延長營業(yè)時間如果有人幫您把您的營業(yè)時間延長66%,您自然會想到您的業(yè)務(wù)會增加,但也需要付相應(yīng)的水電費和員工費等。但是,有了自己的網(wǎng)站,您的業(yè)務(wù)將24小時營業(yè),而不增加任何成本。您可以同時服務(wù)成百上千個客戶而不需要增加店員。7)發(fā)展國際化業(yè)務(wù)您的企業(yè)形象及從事的業(yè)務(wù),將被世界上每一個擁有電腦和對您的業(yè)務(wù)感興趣的人所看到.即便是小公司,也可輕易與大公司競爭,在Internet上人人平等.8)開拓本地市場通過網(wǎng)絡(luò)搜索引擎可以找到更多未來的新客戶,給他們發(fā)E—mail,寄介紹性資料,一個新客戶也可以通過搜索相關(guān)類別、特征詞、甚至電話號碼來找到您。9)測試新產(chǎn)品如果您有一個新產(chǎn)品或新想法,為什么要去花大量的資金先去開發(fā)出來,結(jié)果得到的市場信息并不理想。最經(jīng)濟的辦法是先在網(wǎng)上測驗一下您的想法和定位,得到正確的和理想的反饋后再花錢去將它實現(xiàn)出來。和客戶聯(lián)網(wǎng)對于一個企業(yè)來說至關(guān)重要。通過聯(lián)網(wǎng)廣和科技才經(jīng)常有更多的想法和更好的創(chuàng)意。通過聯(lián)網(wǎng)廣和科技找到了更多新客戶,更重要的是他們找到了廣和科技。只有Internet這種和客戶的聯(lián)接關(guān)系存在10)增強市場推廣想一想在您的電視廣告或報紙廣告在加上您的網(wǎng)站地址,這將給您的客戶又一新的途徑來了解您的業(yè)務(wù)。有人晚上在電視中看見您的廣告,這時您的公司或商店已經(jīng)下班了,但是他還可以上網(wǎng)來與您取得聯(lián)系,因為您在網(wǎng)上是24小時營業(yè)的.這里有一個很好的例子:有一家公司在一個報紙廣告中加上了公司網(wǎng)站地址,第二天他們發(fā)現(xiàn)有800人因為看到報紙而去訪問了公司網(wǎng)站,只要想一想如果在廣告上沒有加那一行,他們失掉的將是什么每天有大約一億人上網(wǎng),這也是為什么很多有成效的企業(yè)都急于在網(wǎng)上有自己的一席之地,因為一億個可能性客戶將是太大的一個數(shù)目,不應(yīng)被任何一個企業(yè)忽視。2.2指導原則建設(shè)企業(yè)門戶網(wǎng)站,注重宣傳公司的同時提高網(wǎng)站的服務(wù)質(zhì)量,主要運用主頁面來給公司做宣傳,加強企業(yè)門戶網(wǎng)站的服務(wù)功能客戶,面向服務(wù)的經(jīng)營理念的指異下提供預(yù)定服務(wù)和售后服務(wù)須定服務(wù)又包括預(yù)定產(chǎn)品服務(wù)和預(yù)定技術(shù)支持服務(wù);售后服務(wù)包括提供產(chǎn)品的維護,技術(shù)咨詢,技術(shù)培訓等企業(yè)門戶網(wǎng)站規(guī)模的擴大將會不斷提高網(wǎng)站的內(nèi)容會不斷豐富,發(fā)揮的作用也會增強網(wǎng)站建設(shè)資金投人也會不斷追加。但是在網(wǎng)站建設(shè)時必須注意互聯(lián)網(wǎng)不僅僅是一種媒體產(chǎn)力工具,不能以企業(yè)為中心的理念來指導企業(yè)門戶網(wǎng)站的建設(shè)應(yīng)轉(zhuǎn)換到以客戶為中心,以服務(wù)為中心的企業(yè)門戶網(wǎng)站經(jīng)營理念,利用網(wǎng)站建立高效的生產(chǎn)銷售模式。加強企業(yè)門戶網(wǎng)站的使用性,使企業(yè)的網(wǎng)站不在是一個擺設(shè),能真正的實現(xiàn)管理的信息化.3、企業(yè)門戶網(wǎng)站建設(shè)整體設(shè)想3.1設(shè)計思想系統(tǒng)采用JSP編程語言,在總體結(jié)構(gòu)上采用三層B/S結(jié)構(gòu):各類信息資源在服務(wù)器一端,采取數(shù)據(jù)庫(SQLSERVER2000)統(tǒng)一存放和組織,用戶在客戶機一端,無須任何配置工作,只須使用瀏覽器向WEB服務(wù)器代理提出訪問請求,服務(wù)器審核后通過中間控件與后臺數(shù)據(jù)庫鏈接,把請求服務(wù)的信息以WEB頁面形式通過瀏覽器反饋給用戶。系統(tǒng)E-R圖如下:游客游客注冊用戶名密碼姓名性別年齡電話住址郵箱類型注冊用戶瀏覽信息修改個人信息聯(lián)系我們技術(shù)中心公司概況新聞中心產(chǎn)品中心方案中心商務(wù)中心用戶名用戶名密碼管理員管理信息公司概況新聞中心產(chǎn)品中心方案中心商務(wù)中心技術(shù)中心聯(lián)系我們系統(tǒng)用戶注冊用戶3.2功能模塊圖前臺用戶前臺用戶企業(yè)網(wǎng)站企業(yè)介紹信息企業(yè)新聞瀏覽企業(yè)產(chǎn)品瀏覽方案中心瀏覽在線注冊管理員登錄添加修改刪除企業(yè)信息添加修改刪除新聞信息添加修改刪除產(chǎn)品信息注冊會員管理網(wǎng)站系統(tǒng)用戶管理企業(yè)新聞瀏覽技術(shù)方案管理3。3企業(yè)網(wǎng)站操作流程企業(yè)信息企業(yè)信息新聞中心企業(yè)產(chǎn)品技術(shù)信息在線注冊檢索數(shù)據(jù)庫登錄后臺企業(yè)信息管理業(yè)內(nèi)新聞管理企業(yè)產(chǎn)品管理網(wǎng)站系統(tǒng)管理注冊會員管理用戶管理員商務(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公司倡導、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標準,是基于JavaServlet以及整個Java體系的web開發(fā)技術(shù)。在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*。html)中加入腳本片段和JSP標記(Tag),構(gòu)成JSP網(wǎng)頁(*。jsp)。JSP技術(shù)為創(chuàng)建顯示動態(tài)生成內(nèi)容的web頁面提供了簡便的方法。JSP作為Java家族的一員,承襲了Java的特點,即跨平臺的特性,也即一次編譯,到處運行。在國外,己經(jīng)大量使用JSP作為網(wǎng)絡(luò)應(yīng)用程序的開發(fā)工具,而在國內(nèi),盡管JSP還不是主流開發(fā)技術(shù),但是由于JSP的強大優(yōu)勢,許多網(wǎng)站都已經(jīng)準備轉(zhuǎn)向JSP,利用JSP來開發(fā)動態(tài)網(wǎng)站.3。4.2JSP工作原理JSP是面向服務(wù)器的,因此支持任何瀏覽器.當Web服務(wù)器和JSP引擎遇到訪問JSP網(wǎng)頁的請求時,JSP引擎將請求對象發(fā)送給服務(wù)器端的相關(guān)組件,比如JavaBean組件、Servlet或EJB等,然后由服務(wù)器端組件處理這些請示,可能需要從數(shù)據(jù)庫或數(shù)據(jù)存儲中檢索信息,然后服務(wù)器端組件再將響應(yīng)對象返回JSP引擎.JSP引擎將響應(yīng)對象傳遞給JSP頁面,根據(jù)JSP頁面的HTML格式完成數(shù)據(jù)編排,最后Web服務(wù)器和JSP引擎將格式化后的JSP頁面以HTML格式返回客戶瀏覽器。這就是當前網(wǎng)站構(gòu)建中廣泛采用的瀏覽器——Web服務(wù)器—-后臺數(shù)據(jù)庫的三層架構(gòu)模式。因為JSP所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果。3。4.3JSP體系結(jié)構(gòu)JSP網(wǎng)站開發(fā)標準給出了兩種使用JSP的技術(shù),可以歸納為模式一、模式二。模式一:JSP+JavaBeans技術(shù)在這種模式中,JSP頁面獨自響應(yīng)請求并將處理結(jié)果返回給客戶。Bean處理所有數(shù)據(jù)訪問,JSP實現(xiàn)頁面的表現(xiàn),以實現(xiàn)內(nèi)容生成與顯示相分離。當處理復雜的大型應(yīng)用時,頁面被嵌入大量的腳本或Java代碼段,當需要處理的商業(yè)邏輯復雜時,這種情況會變得非常糟糕,大量的內(nèi)嵌代碼使得頁面程序變得復雜,對于前端界面設(shè)計人員,這是不可思議的事情.所以模式一可用于小型應(yīng)用,不能夠滿足大型應(yīng)用的需要。模式二:JSP+Servlet+JavaBeans技術(shù)Servlet技術(shù)是一種采用Java技術(shù)來實現(xiàn)CGI功能的一種技術(shù),Servlet技術(shù)非常適于服務(wù)器端的處理和編程,并且Servlet會長期駐留在內(nèi)存。從開發(fā)的觀點看,模式二具有更清晰的頁面表現(xiàn),清楚的開發(fā)者角色劃分,在大規(guī)模項目開發(fā)中,模式二更被采用,模式二也更符合當前流行的MVC結(jié)構(gòu)(Model/view/controller),其中Servlet對應(yīng)controller,處于控制者的位置,處理HTTP請求,負責生成JSP中使用的Beans組件或?qū)ο?,并判斷?yīng)將請求傳遞給哪個JSP等,JSP對應(yīng)view,負責生成最終的動態(tài)網(wǎng)頁并返回給瀏覽器.而JavaBeans對應(yīng)的是Model,實現(xiàn)各個具體的應(yīng)用邏輯與功能.3。4。4JSP的特點簡化的頁面生成技術(shù).JSP頁面用標準的HTML或XML命令來處理頁面的格式化和布局設(shè)計,而用類似HTML、XML的標記和Java語言編寫的腳本程序生成頁面內(nèi)容。這使得頁面形式與頁面內(nèi)容互相獨立,非常有利于大型項目的分工合作.與Java平臺有機集成。JSP技術(shù)是Java2平臺的重要組成部分,JSP使用Java語言作為它的腳本語言。在JSP頁面中可以使用幾乎所有的Java組件和JavaAPI,這就能充分發(fā)揮出Java語言的強大功能。使用JSP技術(shù)可以創(chuàng)建具有高度可伸縮性和可靠性的Web應(yīng)用程序。硬件平臺和服務(wù)器無關(guān)性。JSP作為Java家族的一員,秉承了Java技術(shù)的“一次編寫,隨處可用(WriteOnce,RumAnywhere)”的特性,可以運行于大多數(shù)流行的操作系統(tǒng)平臺及Web服務(wù)器,這種與服務(wù)器硬件和操作系統(tǒng)平臺的無關(guān)性是JSP相對于其它動態(tài)網(wǎng)頁技術(shù)最大的一個優(yōu)點。功能可擴展性。如同Microsoft的JSP技術(shù)可以通過ActiveX/COM組件來擴展功能一樣,JSP可以通過JavaBean和EJB(EnterpriseJavaBean)以及自定義的標記來擴展功能。JSP可以通過JDBC,與諸如Oracle、SQLServer這樣的大型關(guān)系數(shù)據(jù)庫進行連接。JSP提供了一些隱含對象。這些隱含對象在JSP頁面中可以直接引用,而不必首先聲明。利用JSP提供的這些隱含對象,可以使腳本功能更加強大,并且編程更加容易、方便。例如,利用request對象,可以很容易地接收用戶在HTML表單中提交的信息。3。4.5SQLSERVER2000數(shù)據(jù)庫SQLServer是由Microsoft開發(fā)和推廣的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(DBMS),它最初是由Microsoft、Sybase和Ashton—Tate三家公司共同開發(fā)的,并于1988年推出了第一個OS/2版本。SQLServer近年來不斷更新版本,1996年,Microsoft推出了SQLServer6。5版本;1998年,SQLServer7.0版本和用戶見面;SQLServer2000是Microsoft公司于2000年推出的最新版本。SQLServer特點:1.真正的客戶機/服務(wù)器體系結(jié)構(gòu)。2.圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡單。3.豐富的編程接口工具,為用戶進行程序設(shè)計提供了更大的選擇余地。4.SQLServer與WindowsNT完全集成,利用了NT的許多功能,如發(fā)送和接受消息,管理登錄安全性等。SQLServer也可以很好地與MicrosoftBackOffice產(chǎn)品集成.5.具有很好的伸縮性,可跨越從運行Windows95/98的膝上型電腦到運行Windows2000的大型多處理器等多種平臺使用。6.對Web技術(shù)的支持,使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到Web頁面上。7.SQLServer提供數(shù)據(jù)倉庫功能,這個功能只在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語句,完成對不同數(shù)據(jù)庫的訪問.因此,開發(fā)人員使用JDBCAPI可以不必編寫一個應(yīng)用程序來訪問Sybase數(shù)據(jù)庫,又另外編寫一個應(yīng)用程序去訪問Oracle數(shù)據(jù)庫,再寫一個應(yīng)用程序訪問Microsoft的SQLServer。不但如此,使用Java語言編寫的應(yīng)用程序可以在任何支持Java的平臺上運行,不必在不同的平臺上開發(fā)不同的應(yīng)用程序。簡單地說,JDBC能完成下列三件事:同一個數(shù)據(jù)庫建立連接;向數(shù)據(jù)庫建立連接;處理數(shù)據(jù)庫返回的結(jié)果。JDBC是一種通用低層的應(yīng)用程序編程接口,它在不同的數(shù)據(jù)庫功能模塊的層次上提供一個統(tǒng)一的用戶界面。說JDBC是一處低級的API,是指它直接調(diào)用SQL命令,它比其他的一些數(shù)據(jù)庫連接API要容易使用些,但它有同樣可以作為更高級的,用戶辦面更友好的API或開發(fā)工具基礎(chǔ)。很多可視化的Java開發(fā)工具,如VisualAgeForJava、VisualCafé、J++等都提供了基于JDBC的更面向用戶的類和包,直接將關(guān)系數(shù)據(jù)庫的表或視圖映射為Java類,程序員通過可視化工具直接對Java對象進行操作,而真正需要的SQL調(diào)用則根據(jù)程序員發(fā)出的對對象的各種屬性、方法的操作來自動產(chǎn)生。另一種使用JDBCAPI的方式為,用戶程序可以提供一個界面(如菜單等)讓用戶選擇對數(shù)據(jù)庫進行的操作,選中一個任務(wù)后,提示用戶輸入一些必要的信息,然后根據(jù)用戶的輸入產(chǎn)生相應(yīng)的SQL命令以及Java程序。通過這處方式,用戶可以完成對數(shù)據(jù)庫的操作,即使他并不了解SQL語法以及JDBC編程.數(shù)據(jù)庫訪問的三層結(jié)構(gòu)如圖5.1所示,瀏覽器端程序要訪問數(shù)據(jù)庫,首先通過中間件,然后由中間件對數(shù)據(jù)庫操作權(quán)限進行認證,認證通過才能對數(shù)據(jù)庫進行操作。圖5.1使用中間件的數(shù)據(jù)庫訪問三層結(jié)構(gòu)用戶對數(shù)據(jù)庫的存取權(quán)限認證是中間件中完成,對數(shù)據(jù)庫的查詢、插入、更新和刪除操作等都封裝在中間件中,該中間件位于服務(wù)器端,中間件對數(shù)據(jù)庫進行操作后,再將處理結(jié)果通過Web服務(wù)器返回到瀏覽器端用戶.這樣,在用戶端輸入的用戶名和密碼,可以通過加密算法進行加密后在網(wǎng)絡(luò)上傳輸,在中間件中進行解密認證,然后再進行數(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的三層模型因為”中間層"可以進行對訪問的控制并協(xié)同數(shù)據(jù)庫的更新,并且可以使用一個易用的高層API,這個API可以由“中間層”進行轉(zhuǎn)換,轉(zhuǎn)換成低層的調(diào)用。所以在許多種情況下,三層模型可以提供更好的性能,本系統(tǒng)中所采用的就是此種模型。JDBC是JAVA應(yīng)用程序與數(shù)據(jù)庫的溝通橋梁.它提供了三項服務(wù)功能:一、與數(shù)據(jù)庫建立連接。二、將SQL語句傳遞給數(shù)據(jù)庫。三、從數(shù)據(jù)庫取得SQL語句的執(zhí)行結(jié)果.當JDBC要與數(shù)據(jù)庫建立連接前,首先,它必須先取得連接此數(shù)據(jù)庫的JDBC驅(qū)動程序,Class。forName()即是在執(zhí)行此項工作。建立數(shù)據(jù)庫連接的第一步驟就是將JDBC驅(qū)動程序的類載入至JVM(JavaVirtualLMachine)中,本系統(tǒng)中利用java.lang。Class類內(nèi)的forName()靜態(tài)函數(shù)依據(jù)指定的類名稱,將JDBC驅(qū)動程序載入進來.完成載入驅(qū)動程序的步驟后,必須使用java.sal。DriverManager類所提供的getConnection()靜態(tài)函數(shù),取得與數(shù)據(jù)庫間的連接對象.此連接對象的類類型為java。sal.Connection,必須通過它才能將SQL指令傳遞給數(shù)據(jù)庫,而執(zhí)行結(jié)果也需要通過連接對象來取得。當取得連接對象后,還必須取得Statement對象才能對數(shù)據(jù)庫執(zhí)行SQL指令.Statement主要實現(xiàn)兩個功能:執(zhí)行SQL語句以及取得執(zhí)行結(jié)果。在java。sql.Statement的sql對象中執(zhí)行查詢或修改命令的函數(shù)后傳回的是一個ResultSet對象,這個對象提供了一個存取SQL執(zhí)行結(jié)果的管道,以便通過它將表格數(shù)據(jù)從數(shù)據(jù)庫中取出。每個Statement對象只能產(chǎn)生一個ResultSet對象。數(shù)據(jù)庫連接如圖5。3所示:圖5。3數(shù)據(jù)庫的連接處理數(shù)據(jù)庫的連接處理具體實現(xiàn)如下://建立JDBC——ODBC橋sun.jdbc.odbc。JdbcOdbcDriver;//橋建立不成功時的錯誤處理catch(ClassNotFoundExceptionevent){}//建立與數(shù)據(jù)庫的連接,并發(fā)送SQL查詢語句,將結(jié)果保存到rs對象中 Con=建立JDBC——ODBC橋 Sql=SQL查詢語句 執(zhí)行查詢 Rs=返回結(jié)果//SQL出錯處理 catch(SQLExceptione1){}有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBCAPI,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個程序,為訪問Oracle數(shù)據(jù)庫又專門寫一個程序,或為訪問Informix數(shù)據(jù)庫又編寫另一個程序等等,程序員只需用JDBCAPI寫一個程序就夠了,它可向相應(yīng)數(shù)據(jù)庫發(fā)送SQL調(diào)用。同時,將Java語言和JDBC結(jié)合起來使程序員不必為不同的平臺編寫不同的應(yīng)用程序,只須寫一遍程序就可以讓它在任何平臺上運行,這也是Java語言“編寫一次,處處運行”的優(yōu)勢.Java數(shù)據(jù)庫連接體系結(jié)構(gòu)是用于Java應(yīng)用程序連接數(shù)據(jù)庫的標準方法。JDBC對Java程序員而言是API,對實現(xiàn)與數(shù)據(jù)庫連接的服務(wù)提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標準的接口,并為數(shù)據(jù)庫廠商及第三方中間件廠商實現(xiàn)與數(shù)據(jù)庫的連接提供了標準方法。JDBC使用已有的SQL標準并支持與其它數(shù)據(jù)庫連接標準,如ODBC之間的橋接.JDBC實現(xiàn)了所有這些面向標準的目標并且具有簡單、嚴格類型定義且高性能實現(xiàn)的接口。
Java具有堅固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動下載等特性,是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言。所需要的只是Java應(yīng)用程序與各種不同數(shù)據(jù)庫之間進行對話的方法。而JDBC正是作為此種用途的機制。JDBC擴展了Java的功能.例如,用Java和JDBCAPI可以發(fā)布含有applet的網(wǎng)頁,而該applet使用的信息可能來自遠程數(shù)據(jù)庫企業(yè)也可以用JDBC通過Intranet將所有職員連到一個或多個內(nèi)部數(shù)據(jù)庫中(即使這些職員所用的計算機有Windows、Macintosh和UNIX等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用Java編程語言,對從Java中便捷地訪問數(shù)據(jù)庫的要求也在日益增加.MIS管理員們都喜歡Java和JDBC的結(jié)合,因為它使信息傳播變得容易和經(jīng)濟。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫,并能便捷地存取信息,即使這些信息是儲存在不同數(shù)據(jù)庫管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序.對于商務(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”);}上述代碼對基于JDBC的數(shù)據(jù)庫訪問做了經(jīng)典的總結(jié).3.4。7BS模式與C/S模式的比較分析C/S模式主要由客戶應(yīng)用程序(Client)、服務(wù)器管理程序(Server)和中間件(middleware)三個部件組成??蛻魬?yīng)用程序是系統(tǒng)中用戶與數(shù)據(jù)進行交互的部件.服務(wù)器程序負責有效地管理系統(tǒng)資源,如管理一個信息數(shù)據(jù)庫,其主要工作是當多個客戶并發(fā)地請求服務(wù)器上的相同資源時,對這些資源進行最優(yōu)化管理。中間件負責聯(lián)結(jié)客戶應(yīng)用程序與服務(wù)器管理程序,協(xié)同完成一個作業(yè),以滿足用戶查詢管理數(shù)據(jù)的要求。B/S模式是一種以Web技術(shù)為基礎(chǔ)的新型的MIS系統(tǒng)平臺模式。把傳統(tǒng)C/S模式中的服務(wù)器部分分解為一個數(shù)據(jù)服務(wù)器與一個或多個應(yīng)用服務(wù)器(Web服務(wù)器),從而構(gòu)成一個三層結(jié)構(gòu)的客戶服務(wù)器體系。第一層客戶機是用戶與整個系統(tǒng)的接口。客戶的應(yīng)用程序精簡到一個通用的瀏覽器軟件,如Netscape
Navigator,微軟公司的IE等.瀏覽器將HTML代碼轉(zhuǎn)化成圖文并茂的網(wǎng)頁.網(wǎng)頁還具備一定的交互功能,允許用戶在網(wǎng)頁提供的申請表上輸入信息提交給后臺,并提出處理請求.這個后臺就是第二層的Web服務(wù)器。第二層Web服務(wù)器將啟動相應(yīng)的進程來響應(yīng)這一請求,并動態(tài)生成一串HTML代碼,其中嵌入處理的結(jié)果,返回給客戶機的瀏覽器。如果客戶機提交的請求包括數(shù)據(jù)的存取,Web服務(wù)器還需與數(shù)據(jù)庫服務(wù)器協(xié)同完成這一處理工作。第三層數(shù)據(jù)庫服務(wù)器的任務(wù)類似于C/S模式,負責協(xié)調(diào)不同的Web服務(wù)器發(fā)出的SQ請求,管理數(shù)據(jù)庫。B/S模式的優(yōu)勢首先它簡化了客戶端。它無需象C/S模式那樣在不同的客戶機上安裝不同的客戶應(yīng)用程序,而只需安裝通用的瀏覽器軟件.這樣不但可以節(jié)省客戶機的硬盤空間與內(nèi)存,而且使安裝過程更加簡便、網(wǎng)絡(luò)結(jié)構(gòu)更加靈活.假設(shè)一個企業(yè)的決策層要開一個討論庫存問題的會議,他們只需從會議室的計算機上直接通過瀏覽器查詢數(shù)據(jù),然后顯示給大家看就可以了.甚至與會者還可以把筆記本電腦聯(lián)上會議室的網(wǎng)絡(luò)插口,自己來查詢相關(guān)的數(shù)據(jù)。其次,它簡化了系統(tǒng)的開發(fā)和維護。系統(tǒng)的開發(fā)者無須再為不同級別的用戶設(shè)計開發(fā)不同的客戶應(yīng)用程序了,只需把所有的功能都實現(xiàn)在Web服務(wù)器上,并就不同的功能為各個組別的用戶設(shè)置權(quán)限就可以了。各個用戶通過HTTP請求在權(quán)限范圍內(nèi)調(diào)用Web服務(wù)器上不同處理程序,從而完成對數(shù)據(jù)的查詢或修改.現(xiàn)代企業(yè)面臨著日新月異的競爭環(huán)境,對企業(yè)內(nèi)部運作機制的更新與調(diào)整也變得逐漸頻繁。相對于C/S,B/S的維護具有更大的靈活性。當形勢變化時,它無須再為每一個現(xiàn)有的客戶應(yīng)用程序升級,而只需對Web服務(wù)器上的服務(wù)處理程序進行修訂。這樣不但可以提高公司的運作效率,還省去了維護時協(xié)調(diào)工作的不少麻煩。如果一個公司有上千臺客戶機,并且分布在不同的地點,那么便于維護將會顯得更加重要。再次,它使用戶的操作變得更簡單。對于C/S模式,客戶應(yīng)用程序有自己特定的規(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é)省人力物力。鑒于B/S相對于C/S的先進性,B/S逐漸成為一種流行的MIS系統(tǒng)平臺。各軟件公司紛紛推出自己的Internet方案,基于Web的財務(wù)系統(tǒng)、基于Web的ERP。一些企業(yè)已經(jīng)領(lǐng)先一步開始使用它,并且收到了一定的成效。B/S模式的新穎與流行,和在某些方面相對于C/S的巨大改進,使B/S成了MIS系統(tǒng)平臺的首選.3。5系統(tǒng)設(shè)計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自動生成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自動生成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自動生成catch塊 }finally{ DBConn。close(conn,st,rs); } returnal; }}3。5。5用戶登陸該過程的流程圖如下圖:輸入姓名及口令輸入姓名及口令記錄在口令表嗎中進入主界面繼續(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。〈br> * *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”,"用戶名或密碼錯誤!"); }else{ str=”/admin/modifyname.jsp"; HttpSessionsession=request。getSession(); session.setAttribute(”adminlogin",al); } request.getRequestDispatcher(str).forward(request,response); }3。5.6后臺登陸當系統(tǒng)登陸時,首先出現(xiàn)的是一個用戶權(quán)限登陸的界面,權(quán)限設(shè)置主要是維護系統(tǒng)的安全性和完整性,沒有權(quán)限的操作員不能對相應(yīng)的窗口進行操作.如下圖所示:代碼如下: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+",'會員卡續(xù)費',"+amount+”)”; ib。insertANDupdateANDdel(sql); request。setAttribute(”message”,"操作成功!”); RequestDispatcherrd=request.getRequestDispatcher(”/admin/users_amount。jsp"); rd.forward(request,response); }3。5.7新聞中心管理身份驗證通過以后,點擊可以使用系統(tǒng)的基本信息管理界面,這是管理員主要的輸入信息部分,它即可以對數(shù)據(jù)進行輸入。填寫好各項信息后,單擊保存按鈕,系統(tǒng)將對這些信息進行處理。界面見下圖:代碼如下: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”,”您沒有辦理年卡或年卡已到期,請續(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","此項目開始時間已記錄,請結(jié)帳后在重新消費!"); } }3.5.8公司概況管理點擊可以使用系統(tǒng)的基本信息管理界面,這是管理員主要的輸入信息部分,它即可以對數(shù)據(jù)進行輸入。填寫好各項信息后,單擊保存按鈕,系統(tǒng)將對這些信息進行處理.界面見下圖:代碼如下: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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州財經(jīng)職業(yè)學院《先進制造訓練》2023-2024學年第一學期期末試卷
- 貴陽職業(yè)技術(shù)學院《戶外基礎(chǔ)技能》2023-2024學年第一學期期末試卷
- 2025浙江省安全員A證考試題庫
- 白玉桃種植示范基地建設(shè)項目可行性研究報告-白玉桃市場需求持續(xù)擴大
- 廣州中醫(yī)藥大學《商業(yè)銀行管理》2023-2024學年第一學期期末試卷
- 2025江蘇省安全員B證考試題庫
- 2025黑龍江省建筑安全員知識題庫附答案
- 2025河南省建筑安全員考試題庫附答案
- 2025河北建筑安全員《A證》考試題庫
- 2025年遼寧省安全員《A證》考試題庫
- 熱控專業(yè)施工質(zhì)量驗收范圍劃分表
- 水文氣象報告
- 2022年sppb簡易體能狀況量表
- 錨桿、錨索框架梁施工方案
- 各類傳染病個案調(diào)查表集
- 全口義齒PPT課件
- 室內(nèi)裝飾裝修工程施工組織設(shè)計方案(完整版)
- 淺析當前煙花爆竹安全監(jiān)管中存在的問題與對策
- 消防系統(tǒng)檢測方案(完整版)
- 關(guān)于童話故事的題目
- 工程竣工驗收備案申請表1
評論
0/150
提交評論