基于struts2的網(wǎng)上購物系統(tǒng)_第1頁
基于struts2的網(wǎng)上購物系統(tǒng)_第2頁
基于struts2的網(wǎng)上購物系統(tǒng)_第3頁
基于struts2的網(wǎng)上購物系統(tǒng)_第4頁
基于struts2的網(wǎng)上購物系統(tǒng)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、前 言電子商務(wù)在全球各地廣泛的商業(yè) HYPERLINK /view/13505.htm t _blank 貿(mào)易活動中,在 HYPERLINK /view/1706.htm t _blank 因特網(wǎng)開放的網(wǎng)絡(luò)環(huán)境下,基于 HYPERLINK /view/7718.htm t _blank 瀏覽器/服務(wù)器應(yīng)用方式,實現(xiàn)消費者的 HYPERLINK /view/7777.htm t _blank 網(wǎng)上購物、商戶之間的 HYPERLINK /view/21878.htm t _blank 網(wǎng)上交易和在線電子支付以及各種商務(wù)活動、交易活動、 HYPERLINK /view/2761.htm t _bla

2、nk 金融活動和相關(guān)的綜合服務(wù)活動的一種新型的商業(yè) HYPERLINK /view/283828.htm t _blank 運營模式。不僅改變著企業(yè)本身的生產(chǎn)、經(jīng)營、管理活動,而且影響到整個社會的經(jīng)濟運行與結(jié)構(gòu)。銀行是圍繞貨幣,生產(chǎn)和出售一系列相關(guān)服務(wù)的企業(yè),貨幣本身就是一種價值符號,這一特質(zhì),決定了銀行業(yè)是特別適合信息化的行業(yè)。事實上,銀行業(yè)一直是使用信息技術(shù)最廣泛、最深入、最先進(jìn)的行業(yè)。過去10多年,銀行依托信息技術(shù)實現(xiàn)的金融創(chuàng)新,已在很大程度上改變了銀行的經(jīng)營管理,銀行應(yīng)該說是電子商務(wù)的先導(dǎo)者?,F(xiàn)階段各家銀行為了方便客戶都開通了電子銀行,ATM自動取款,銷售點終端POS等服務(wù)。近年來中國

3、的銀行卡業(yè)務(wù)正呈爆炸式增長態(tài)勢,銀行為了刺激持卡人的消費,收集持卡人消費行為數(shù)據(jù)等目的,不斷推出各式各樣的積分回饋活動。為了方便用戶的查詢和兌換,并防止出現(xiàn)排隊等候等現(xiàn)象,開發(fā)一個透明、友好、快速、便捷的銀行積分管理系統(tǒng)已經(jīng)刻不容緩。因為電子商務(wù)技術(shù)在銀行中的廣泛應(yīng)用,采用網(wǎng)絡(luò)方式的銀行積分管理系統(tǒng)已逐步出現(xiàn)。所以本文擬利用電子商務(wù)在銀行方面的優(yōu)勢,開發(fā)基于JSP技術(shù)的銀行積分系統(tǒng)。第一章 緒論一、問題的提出目前,各大銀行都開展了各種積分回饋活動,銀行不僅可以通過持卡人的消費獲得手續(xù)費收入,同時也可以了解到消費者的消費行為,從而為將來潛在的促銷獲取極有價值的信息。另外由于各大銀行的積分都是永久

4、有效的,這樣大量的積分活動也有助于留住持卡人,防止用戶的流失。隨著持卡消費的數(shù)量在不斷上升,以及消費方式的多樣化(如:ATM,POS等),傳統(tǒng)的積分管理系統(tǒng)已經(jīng)不能滿足現(xiàn)在業(yè)務(wù)的要求,如大廳營業(yè)柜臺經(jīng)常出現(xiàn)排隊等候現(xiàn)象。而且隨著網(wǎng)絡(luò)的普及,持卡用戶在網(wǎng)上或是依靠電話進(jìn)行的業(yè)務(wù)量不斷增加。為了更好地服務(wù)于客戶并且分流營業(yè)柜臺的業(yè)務(wù)量,并幫助持卡人及時地了解銀行開展的各種活動以及各種回贈業(yè)務(wù)、方便地查詢自己的消費記錄和積分情況,本文擬開發(fā)一套銀行積分管理系統(tǒng),以便方便、及時、準(zhǔn)確的了解持卡人的信息。二、現(xiàn)有解決方案隨著網(wǎng)絡(luò)的普及和上網(wǎng)人數(shù)的不斷增加,人們逐漸習(xí)慣于在網(wǎng)上進(jìn)行各種商品的交易,于是電子

5、商務(wù)孕育而生。為了提高企業(yè)市場競爭力,越來越多的企業(yè)正在通過電子商務(wù)的形式進(jìn)行網(wǎng)上商品交易,構(gòu)建適合企業(yè)發(fā)展的商務(wù)網(wǎng)站己經(jīng)成為目前企業(yè)比較關(guān)心的問題。發(fā)展電子商務(wù)離不開資金流,而銀行作為天然的資金交易和結(jié)算方,必然成為電子商務(wù)的重要參與者與合作方。銀行近年來不斷發(fā)展電子商務(wù),因為一方面電子商務(wù)使銀行大量的業(yè)務(wù)在網(wǎng)點之外的各種電子化服務(wù)渠道中得到處理,從而有利于將有限員工從繁雜的業(yè)務(wù)中解脫出來,為客戶提供高品質(zhì)的服務(wù);另一方面,以網(wǎng)上銀行為代表的銀行電子商務(wù),將提供打破時空的3A服務(wù),使客戶不受時間、場所的限制,同時選擇自己喜歡的方式辦理業(yè)務(wù)。這樣就降低了客戶辦理業(yè)務(wù)的時間乃至費用,增加了人性化

6、的成分,從而大大提升了服務(wù)品質(zhì),提高了客戶價值。其結(jié)果最終將增強銀行自身的競爭力,提高市場份額。近幾年,JPS技術(shù)己經(jīng)成為電子商務(wù)網(wǎng)站開發(fā)語言的事實標(biāo)準(zhǔn)。利用JPS+Javabean技術(shù)開發(fā)商務(wù)網(wǎng)站,可以使系統(tǒng)的內(nèi)容表示與應(yīng)用邏輯分離開來,使得Wbe服務(wù)器、操作平臺以及組件很容易升級或切換,且不會影響基本程序,能夠適應(yīng)系統(tǒng)的不斷變化和發(fā)展。三、本文的主要工作 本文主要學(xué)習(xí)JSP技術(shù),掌握它的概念、特點、與原有的網(wǎng)絡(luò)編程語言的區(qū)別以及實際的開發(fā),復(fù)習(xí)SQL語言和SQL Server數(shù)據(jù)庫。本論文主要研究:用JSP與JavaBean技術(shù)實現(xiàn)B2C模式的銀行積分管理系統(tǒng)。JSP與JavaBean技術(shù)

7、的結(jié)合使用,可以實現(xiàn)頁面顯示和業(yè)務(wù)邏輯處理的分離,使得其中一個變動不會影響另一個或要求另一個必須做出反應(yīng),更重要的是保證了對數(shù)據(jù)庫操作的代碼不顯示在頁面中,在一定程度上保證了數(shù)據(jù)的安全、可靠,并使得系統(tǒng)調(diào)試方便、代碼重用率高本論文的主要內(nèi)容包括:第二章敘述了電子商務(wù)、JSP、JavaBean、JDBC、SQL Server的基本知識。第三章介紹了本系統(tǒng)的需求、總體設(shè)計、以及在實現(xiàn)中用到的關(guān)鍵技術(shù),及本設(shè)計中相應(yīng)的代碼。第四章是具體實現(xiàn),首先介紹了開發(fā)環(huán)境和搭建,接著介紹了本系統(tǒng)的總體框架,最后是功能設(shè)計、實現(xiàn)和數(shù)據(jù)庫設(shè)計、實現(xiàn)以及系統(tǒng)的運行結(jié)果。第五章對本文的工作作了總結(jié),并提出了其中的不足和

8、下一步努力的方向。第二章 相關(guān)背景和理論一、電子商務(wù)應(yīng)用模式及其發(fā)展(一)電子商務(wù)的概念電子商務(wù),Electronic Commerce,通常是指是在全球各地廣泛的商業(yè) HYPERLINK /view/13505.htm t _blank 貿(mào)易活動中,在 HYPERLINK /view/1706.htm t _blank 因特網(wǎng)開放的網(wǎng)絡(luò)環(huán)境下,基于 HYPERLINK /view/7718.htm t _blank 瀏覽器/服務(wù)器應(yīng)用方式,買賣雙方不謀面地進(jìn)行各種商貿(mào)活動,實現(xiàn)消費者的 HYPERLINK /view/7777.htm t _blank 網(wǎng)上購物、商戶之間的 HYPERLIN

9、K /view/21878.htm t _blank 網(wǎng)上交易和在線電子支付以及各種商務(wù)活動、交易活動、 HYPERLINK /view/2761.htm t _blank 金融活動和相關(guān)的綜合服務(wù)活動的一種新型的商業(yè) HYPERLINK /view/283828.htm t _blank 運營模式?!爸袊W(wǎng)絡(luò)營銷網(wǎng)” Tinlu相關(guān)文章指出,電子商務(wù)涵蓋的范圍很廣,一般可分為企業(yè)對企業(yè)(Business-to-Business),或 HYPERLINK /view/38340.htm t _blank 企業(yè)對消費者(Business-to-Consumer)兩種。另外還有 HYPERLINK

10、 /view/99548.htm t _blank 消費者對消費者(Consumer-to- Consumer)這種大步增長的模式。隨著國內(nèi)Internet使用人口之增加,利用Internet進(jìn)行網(wǎng)絡(luò)購物并以銀行卡付款的消費方式已漸流行,市場份額也在快速增長,電子商務(wù)網(wǎng)站也層出不窮。電子商務(wù)最常見之安全機制有SSL及SET兩種。 電子商務(wù)包括三個要素:一是載體是通訊網(wǎng)絡(luò);二是信息是電子化的;三是商業(yè)行為。隨著技術(shù)的發(fā)展和網(wǎng)絡(luò)的普及,電子商務(wù)越來越呈現(xiàn)出區(qū)別于傳統(tǒng)商務(wù)的得天獨厚的優(yōu)勢,一是交易的效率大大提高,信息以光電的速度傳輸;二是經(jīng)濟活動輻射的區(qū)域大大拓展,超越了物理位置的界限,直達(dá)網(wǎng)絡(luò)的邊

11、界;三是交易成本大大降低,使得服務(wù)提供商有能力提供更強的增值服務(wù)。這種優(yōu)勢使得電子商務(wù)在過去幾年以乘數(shù)級的加速度發(fā)展,所有人都在預(yù)測電子商務(wù)激動人心的前景,不少人包括美國政府在內(nèi)甚至斷言,我們已經(jīng)進(jìn)入了網(wǎng)絡(luò)經(jīng)濟的時代。不管這種論斷是否科學(xué),有一點可以肯定,電子商務(wù)是不可阻擋的趨勢,正以迅猛的速度向我們走來,銀行毫無例外地也要接受電子商務(wù)的洗禮。 (二)電子商務(wù)的模式電子商務(wù)模式可以分為以下三種類型: 1企業(yè)與消費者之間的電子商務(wù)(Business to Customer,即B2C)。這是消費者利用因特網(wǎng)直接參與經(jīng)濟活動的形式,類同于商業(yè)電子化的零售商務(wù)。隨著因特網(wǎng)的出現(xiàn),網(wǎng)上銷售迅速地發(fā)展起來

12、。 2企業(yè)與企業(yè)之間的電子商務(wù)(Business to Business,即B2B)。B2B方式是電子商務(wù)應(yīng)用最多和最受企業(yè)重視的形式,企業(yè)可以使用Internet或其他網(wǎng)絡(luò)對每筆交易尋找最佳合作伙伴,完成從定購到結(jié)算的全部交易行為。 3消費者與消費者之間的電子商務(wù)(Consumer to Consumer,即C2C)。C2C商務(wù)平臺就是通過為買賣雙方提供一個在線交易平臺,使賣方可以主動提供商品上網(wǎng)拍賣,而買方可以自行選擇商品進(jìn)行競價。(三)電子商務(wù)的優(yōu)越性電子商務(wù)是因特網(wǎng)爆炸式發(fā)展的直接產(chǎn)物,是網(wǎng)絡(luò)技術(shù)應(yīng)用的全新發(fā)展方向。因特網(wǎng)本身所具有的開放性、全球性、低成本、高效率的特點,也成為電子商務(wù)

13、的內(nèi)在特征,并使得電子商務(wù)大大超越了作為一種新的貿(mào)易形式所具有的價值,它不僅會改變企業(yè)本身的生產(chǎn)、經(jīng)營、管理活動,而且將影響到整個社會的經(jīng)濟運行與結(jié)構(gòu)。其優(yōu)越性有以下幾點:1電子商務(wù)將傳統(tǒng)的商務(wù)流程電子化、數(shù)字化,一方面以電子流代替了實物流,可以大量減少人力、物力,降低了成本;另一方面突破了時間和空間的限制,使得交易活動可以在任何時間、任何地點進(jìn)行,從而大大提高了效率。2電子商務(wù)所具有的開放性和全球性的特點,為企業(yè)創(chuàng)造了更多的貿(mào)易機會。3電子商務(wù)使企業(yè)可以以相近的成本進(jìn)入全球電子化市場,使得中小企業(yè)能擁有和大企業(yè)一樣的信息資源,提高了中小企業(yè)的競爭能力。(四)電子銀行與電子商務(wù)的結(jié)合在現(xiàn)代電子

14、商務(wù)中,資金流、信息流和物流是三個必備的因素。銀行因得天獨厚地掌控了資金流,在這種有利情況下,銀行最核心的競爭力就是能通過資金流衍生出新的金融產(chǎn)品,通過與保險、基金、證券、期貨以及信托等的聯(lián)合創(chuàng)新金融衍生產(chǎn)品。像交通銀行的電子銀行業(yè)務(wù)除了對公、對私支付、一般性轉(zhuǎn)賬支付之外,其企業(yè)網(wǎng)上銀行還推出了集團(tuán)客戶現(xiàn)金管理產(chǎn)品?,F(xiàn)金管理產(chǎn)品就是集團(tuán)客戶通過總公司把各分公司的資金以現(xiàn)金形式集中起來,供集團(tuán)內(nèi)部調(diào)撥使用,這樣,集團(tuán)內(nèi)部就避免了一個公司因資金短缺而貸款,同時另一個公司資金富余而存款的現(xiàn)象?,F(xiàn)在,使用其現(xiàn)金管理產(chǎn)品的集團(tuán)企業(yè)已經(jīng)達(dá)到582家。另外,其個人網(wǎng)上銀行推出了基金超市、外匯買賣等產(chǎn)品,推出

15、了“家庭賬戶”的概念。從上述可以看出,銀行與電子商務(wù)結(jié)合是銀行業(yè)發(fā)展的主要方向,本文主要研究的是消費者與企業(yè)之間的電子商務(wù),基于JSP技術(shù),后臺采用SQL Server數(shù)據(jù)庫,實現(xiàn)用戶的各種查詢、管理員的系統(tǒng)管理功能,以及各種報表的產(chǎn)生。 二、 JSP及相關(guān)技術(shù)介紹(一)JSP1JSP產(chǎn)生的背景為了彌補中需要逐行輸出語句的缺點,年初Sun公司發(fā)布了第一個公開的規(guī)范草稿。它是JSP0.91版,看上去與微軟的極為相似。年月公司又發(fā)行了版,年月日正式發(fā)行。此后又經(jīng)歷幾個版本,最新版本是年發(fā)布的。2什么是JSPJSP的 全稱是JavaServer Page,是由Sun Microsystems公司倡導(dǎo)

16、、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)是在技術(shù)基礎(chǔ)上發(fā)展起來的是在Servlet服務(wù)器端編譯執(zhí)行的Web數(shù)據(jù)庫系統(tǒng)應(yīng)用程序編程語言,其腳本語言采用Java,完全繼承了Java的所有優(yōu)點。從本質(zhì)上說,是JavaServer Page API的一個擴展。事實上,JSP頁面在處理請求之前都要編譯成Servlet,所以它具有的Servlet所有優(yōu)勢,包括訪問Java API。簡單地說,一個JSP頁面就是包含了能夠生成動態(tài)內(nèi)容的可執(zhí)行應(yīng)用程序的HTML網(wǎng)頁。也就是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*html)中加入Java程序片段(Scriptlet)和JSP標(biāo)記,就構(gòu)成了JSP網(wǎng)頁(*.js

17、p)。TAG絕大部分是以“”結(jié)束的。3JSP的工作原理Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。其中程序片段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送email等,這是建立動態(tài)網(wǎng)站所需要的功能。在一個JSP文件第一次被請求時,JSP引擎先把該JSP文件轉(zhuǎn)換成一個Java源文件,在轉(zhuǎn)換時如果發(fā)現(xiàn)JSP文件有任何語法錯誤,轉(zhuǎn)換過程將中斷,并向服務(wù)端和客戶端輸出出錯信息如果轉(zhuǎn)換成功,JSP引擎調(diào)用Java虛擬機的Javac程序把該源文件編譯成相應(yīng)的class文件,該class文件也就是一個Servlet程序然后創(chuàng)建一個該Servlet的實例,提

18、供服務(wù)響應(yīng)用戶的請求。響應(yīng)流程如圖2-1所示:圖2-1 JSP響應(yīng)流程圖在創(chuàng)建一個Servlet實例時,該Servlet的jspInit()方法被執(zhí)行,jspInit()方法在Servlet的生命周期中只被執(zhí)行一次。然后jspServlet方法被調(diào)用來處理客戶端的請求。對每一個請求,JSP引擎創(chuàng)建一個新的線程來處理該請求。如果有多個客戶端同時請求該JSP文件,則JSP引擎會創(chuàng)建多個線程,每個客戶端請求對應(yīng)一個線程。Servlet的這種以多線程響應(yīng)請求的方式可大大降低對系統(tǒng)資源的需求,提高系統(tǒng)的并發(fā)量及響應(yīng)時間。由于該Servlet始終駐于內(nèi)存,所以響應(yīng)是非常快的。如果JSP文件被修改了,服務(wù)器

19、將根據(jù)設(shè)置決定是否對該文件重新編譯。如果需要重新編譯,則將編譯結(jié)果取代內(nèi)存中的Servlet,并繼續(xù)上述處理過程。雖然JSP效率很高,但在第一次調(diào)用時由于需要轉(zhuǎn)換和編譯而有一些輕微的延遲。此外,JSP引擎在必要的時候可能將Servlet從內(nèi)存中移除,此時JSP引擎將會調(diào)jspDestroy用方法進(jìn)行必要的清理工作。調(diào)用完方法jspDestroy()方法之后,該Servlet的生命周期也就結(jié)束了。4JSP與CGI、API、PHP的比較電子商務(wù)的發(fā)展對傳統(tǒng)的技術(shù)提出了強有力的挑戰(zhàn),由于電子商務(wù)的內(nèi)部邏輯復(fù)雜,安全性要求苛刻,商務(wù)形式發(fā)展變化快,傳統(tǒng)的CGI技術(shù)(Common Gateway Int

20、erface,通用網(wǎng)關(guān)接口)己不能適應(yīng)要求。目前,構(gòu)建網(wǎng)站的開發(fā)工具越來越集中在幾種典型的技術(shù)上,如,ASP(Active Servlet,動態(tài)服務(wù)器網(wǎng)頁)、PHP(Professional Hypertext Preprocessor,超文本預(yù)處理器)及JSP。將JSP與CGI.ASP.和PHP相比,有如下特點:(1)JSP與CGI相比在早期,動態(tài)網(wǎng)頁主要采用CGI技術(shù),它是一個WWW服務(wù)器主機對外服務(wù)的標(biāo)準(zhǔn)接口。一個CGI接口的功能就是在超文本文件和服務(wù)器主機應(yīng)用程序間傳遞信息。編寫CGI程序的常用語言有C/C+和Perl及Java等。優(yōu)點:CGI的跨平臺性能極佳,幾乎可以在任何操作系統(tǒng)上

21、實現(xiàn)。缺點:CGI的應(yīng)用程序一般都是一個獨立的可執(zhí)行程序,和WWW服務(wù)器各自占據(jù)著不同的進(jìn)程,一般一個CGI程序只能處理一個用戶請求。每一個用戶請求,都會激活一個CGI進(jìn)程,當(dāng)用戶請求數(shù)量非常多時,會大量擠占系統(tǒng)的資源如CPU內(nèi)存,時間等,造成效能低下。而JSP程序由JSP引擎執(zhí)行,JSP引擎具有多線程響應(yīng)的方式,并與HTTP服務(wù)器一起長駐內(nèi)存,執(zhí)行多個請求時,JSP的執(zhí)行效率比CGI高工。(2)JSP與ASP相比ASP是微軟公司開發(fā)的一種動態(tài)網(wǎng)頁技術(shù),實際上是腳本加COM的組合,可以使用腳本語言VBScript和JavaScript作為編程語言。一個ASP文件用腳本或COM來表示W(wǎng)eb請求,

22、服務(wù)器端的解釋器負(fù)責(zé)解釋執(zhí)行這些腳本與COM,并且可以在ASP中去創(chuàng)建一個新的COM對象,同時再通過這些COM組件完成更多的工作。缺點:ASP只能在微軟的NT平臺上運行,無法實現(xiàn)跨操作系統(tǒng)的應(yīng)用,Windows本身的所有問題都會一成不變的累加到它的身上是;是解釋執(zhí)行方式,運行效率不高;COM的開發(fā)較復(fù)雜。JSP是基于Servlet以及整個Java體系的Web開發(fā)技術(shù),具有真正的跨平臺性,可以在任何服務(wù)器中運行,符合“Write once,run anywhere”原則,可以工作在Unix和Windows平臺下。JSP可以利用JavaBean組件技術(shù),而JavaBean其實是Java的一個類,比

23、較容易實現(xiàn)。另外,在JSP中使用JavaBean可以將顯示和業(yè)務(wù)邏輯處理完全分離開來,使模塊開發(fā)、HTML及程序設(shè)計的工作分工非常明確,確保工作的高效率。(3)JSP與PHP相比PHP是一個純粹的Script翻譯器,和JSP一樣是運行于服務(wù)器端的嵌入式腳本語言,其語法借鑒了C、Java和Perl等語言,并結(jié)合自己的特性,使開發(fā)者能夠快速開發(fā)動態(tài)頁面。優(yōu)點:可以跨平臺。缺點:執(zhí)行方式是解釋執(zhí)行,執(zhí)行速度比較慢沒有統(tǒng)一的數(shù)據(jù)庫接口,如果改變數(shù)據(jù)庫平臺,應(yīng)用程序也需要隨之改變沒有特別好的框架結(jié)構(gòu),團(tuán)隊合作比較困難沒有組件支持,安裝復(fù)雜,缺少企業(yè)級支持,缺少商業(yè)支持,必須和Apache一起才能使用。由

24、于PHP缺乏規(guī)模支持與多層結(jié)構(gòu)支持,及相應(yīng)的安全保障,再加上提供的數(shù)據(jù)接口支持不統(tǒng)一,使得它不適合運用在電子商務(wù)中。JSP具有標(biāo)準(zhǔn)的數(shù)據(jù)庫接口(JDBC),可以簡單快捷的訪問任何常見的數(shù)據(jù)庫,為各種常用的數(shù)據(jù)庫提供無縫連接運行效率更高可以得到更廣泛的技術(shù)支持標(biāo)一記可擴展能通過異常處理機制有效防止系統(tǒng)崩潰,能利用內(nèi)存管理機制等提高系統(tǒng)安全性。JSP第一次編譯時,運行速度慢。但在頁面編譯后沒有再被修改時,它的訪問速度會比ASP、PHP快幾倍。5JSP基本語法(1)JSP的腳本元素a. 隱藏注釋():用戶不能看見注釋。b. 聲明語句():定義方法和變量。c. 腳本段():JSP代碼片段或腳本片段,是

25、描述JSP頁面處理的Java代碼。d. 表達(dá)式()把JSP生成的Java數(shù)據(jù)直接插入到HTML頁面。(2)JSP指令元素a. page指令:定義JSP文件中的全局屬性。b. include指令:在JSP頁面中包括另一個文件中的內(nèi)容。c. taglib指令:讓用戶自定義新的標(biāo)簽。(3)JSP動作元素a. :實例化JavaBean,并指定一個名字和作用域。b. :設(shè)定JavaBean的屬性。c. :獲取JavaBean的屬性。d. :包括靜態(tài)和動態(tài)文件。e. :將客戶端的請求從一個JSP頁面轉(zhuǎn)到另一個JSP頁面。f. :提供Key/value的值,與、等標(biāo)簽一起搭配使用。6JSP內(nèi)置對象要存取執(zhí)行

26、JSP代碼的servlet,可以使用下面這些對象。(1)request對象包含了來自用戶端的請求信息,此請求包含來自GET/POST請求的參數(shù)。經(jīng)常使用getParameter方法來提取FORM表單中填寫的信息。(2)response對象組織發(fā)送到用戶端的數(shù)據(jù),是對用戶端的回應(yīng)。(3)out對象代表向客戶端發(fā)送數(shù)據(jù)的對象,是瀏覽器需要顯示的內(nèi)容,是文本級。(4)pageContext對象代表當(dāng)前頁面運行的一些屬性,對網(wǎng)頁的屬性進(jìn)行管理。(5)session對象由服務(wù)器自動創(chuàng)建,用于保存每個用戶的信息,是與請求有關(guān)的會話期。主要用來實現(xiàn)會話跟蹤,用來在客戶端與服務(wù)器之間保持狀態(tài)。(6)appli

27、cation對象保存了一個應(yīng)用系統(tǒng)中公有的數(shù)據(jù),并為所有客戶共享,是servlet正在執(zhí)行的內(nèi)容。(7)page對象代表JSP頁面產(chǎn)生的對象,是JSP網(wǎng)頁本身。(8)config對象提供一些配置信息,是的構(gòu)架部件。(9)excption對象存儲了JSP文件運行時所產(chǎn)生的異常信息,針對錯誤網(wǎng)頁。(二)JavaBean1什么是JavaBeanJavaBean是使用Java語言描述的、易用的、與平臺無關(guān)的軟件組件模型,用于設(shè)計可重用的組件,有點類似于Microsoft的COM組件概念。在Java模型中,通過JavaBean可以無限擴充Java程序的功能,通過JavaBean的組合可以快速地生成新的應(yīng)

28、用程序,易維護(hù),可以實現(xiàn)代碼重復(fù)利用。在JSP程序中常用來封閉事務(wù)邏輯、數(shù)據(jù)庫操作等,可以很好地實現(xiàn)業(yè)務(wù)邏輯和前臺程序(如JSP文件)的分離、邏輯的封裝、程序的易于維護(hù)等,從而使得系統(tǒng)具有更好的健壯性和靈活性。實際上,JavaBean就是一種使用符合某些命名方法和設(shè)計規(guī)范的Java類。2JavaBean的特征JavaBean具有以下特性:(1) JavaBean類必須有一個沒有參數(shù)的構(gòu)造函數(shù),這個構(gòu)造函數(shù)在使用實例化類時調(diào)用。如果JavaBean類內(nèi)沒有任何構(gòu)造函數(shù),系統(tǒng)會自動生成一個沒有參數(shù)的構(gòu)造函數(shù)。(2) JavaBean內(nèi)的屬性都應(yīng)該定義為私有的,那么這些屬性只能通過JavaBean內(nèi)

29、的方法訪問或者改變,這樣可以較好的保護(hù)數(shù)據(jù)的完整性和封裝性。(3) 屬性通過setXxx和getXxx來操作。同時擁有setXxx()和getXxx()方法的可以使之具有讀寫屬性,只有g(shù)etXxx()方法使之具有只讀屬性,只有setXxx方法使之具有只寫屬性。3JDBC(1)什么是JDBCJDBC(Java Database Connectivity)提供完備的數(shù)據(jù)庫操作方法接口,是程序員和數(shù)據(jù)庫打交道的主要途徑,是Java與數(shù)據(jù)庫的連接規(guī)范,是一個支持基本SQL功能的通用底層工。JDBC在不同的數(shù)據(jù)庫功能模塊層次上提供了一個統(tǒng)一的用戶接口,為Java程序員提供了獨立于特定的數(shù)據(jù)庫系統(tǒng)而實現(xiàn)與

30、網(wǎng)絡(luò)數(shù)據(jù)庫互聯(lián)的方式。JDBC是JDK2.0的一部分,和Java語言一樣,是獨立于平臺和數(shù)據(jù)庫的。利用JDBC,可以使用簡單直接的方法完成簡單的數(shù)據(jù)庫任務(wù),如基本查詢,生成和修改。(2)JDBC的總體結(jié)構(gòu)JDBC的總體結(jié)構(gòu)如圖2-2所示,JDBC包含兩個部分,它們與數(shù)據(jù)庫獨立。一部分是面向程序開發(fā)人員的JDBC API,另一部分是面向底層的JDBC驅(qū)動器API(JDBC Driver API)。用JDBC實現(xiàn)Web數(shù)據(jù)庫訪問時,Java應(yīng)用程序通過JDBC API訪問JDBC驅(qū)動器管理者(JDBC Driver), 驅(qū)動器負(fù)責(zé)標(biāo)準(zhǔn)JDBC調(diào)用向其支持的數(shù)據(jù)庫所要的具體調(diào)用轉(zhuǎn)變。JDBC驅(qū)動器管

31、理者用于管理各種數(shù)據(jù)庫軟件商提供的JDBC驅(qū)動器。對沒有提供相應(yīng)驅(qū)動器的數(shù)據(jù)庫管理系統(tǒng),有特殊的JDBC-ODBC橋驅(qū)動器,該驅(qū)動器支持JDBC通過現(xiàn)有的ODBC驅(qū)動器訪問其數(shù)據(jù)庫管理系統(tǒng)。JDBC網(wǎng)絡(luò)驅(qū)動器允許使用通用的網(wǎng)絡(luò)協(xié)議訪問不同的數(shù)據(jù)庫管理系統(tǒng)。圖2-2 JDBC的總體結(jié)構(gòu)圖(3)JDBC的用法根據(jù)使用JDBC API層在整個應(yīng)用中所處的層次,可以把JDBC的用法歸結(jié)為三種模型兩層應(yīng)用模型兩層應(yīng)用模型中,一個Applet或者一個Java應(yīng)用直接同數(shù)據(jù)庫連接。這種應(yīng)用模型中客戶機將SQL語句發(fā)給本機的JDBC驅(qū)動器,JDBC驅(qū)動器再將用戶的SQL語句傳送給數(shù)據(jù)庫,而這些語句的執(zhí)行結(jié)果將

32、被傳回給用戶,常用于傳統(tǒng)的C/S應(yīng)用。如圖2-3所示。圖2-3 兩層應(yīng)用模型圖三層應(yīng)用模型三層應(yīng)用模型中,客戶機只是訪問業(yè)務(wù)邏輯層,而業(yè)務(wù)邏輯層再通過JDBC訪問操作數(shù)據(jù)庫?,F(xiàn)在大多數(shù)的Web應(yīng)用都是采用這種模型開發(fā)和部署。如圖2-4所示。圖2-4三層應(yīng)用模型圖四層應(yīng)用模型將數(shù)據(jù)庫訪問從業(yè)務(wù)邏輯層進(jìn)一步分離出來形成獨立的一層,將這個分離出來的層稱為O/R映射層??蛻魴C訪問業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層再訪問O/R映射層,最后映射層通過JDBC訪問操作數(shù)據(jù)庫。如圖2-5所示。圖2-5四層應(yīng)用模型圖三、SQL Server(一)SQL語言介紹SQL(Structured Query Language,結(jié)構(gòu)

33、查詢語言)是一個功能強大的數(shù)據(jù)庫語言.SQL通常使用于數(shù)據(jù)庫的通訊。ANSI(美國國家標(biāo)準(zhǔn)學(xué)會)聲稱,SQL是關(guān)系數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。SQL語句通常用于完成一些數(shù)據(jù)庫的操作任務(wù),比如在數(shù)據(jù)庫中更新數(shù)據(jù),或者從數(shù)據(jù)庫中檢索數(shù)據(jù)。使用SQL的常見關(guān)系數(shù)據(jù)庫管理系統(tǒng)有Oracle、Sybase、Microsoft SQL Server、Access、Ingres等等。雖然絕大多數(shù)的數(shù)據(jù)庫系統(tǒng)使用SQL,但是它們同樣有它們自立另外的專有擴展功能用于它們的系統(tǒng)。但是,標(biāo)準(zhǔn)的SQL命令,比如“Select”、“Insert”、“Update”/“Delete”、“Create”和“Drop”常常被用

34、于完成絕大多數(shù)數(shù)據(jù)庫的操作。MSSQL Server就是用的Transact-SQL。SQL語言有著非常突出的優(yōu)點,主要是:非過程化語言;統(tǒng)一的語言;是所有關(guān)系數(shù)據(jù)庫的公共語言。(二)SQL Server的體系和結(jié)構(gòu)Microsoft SQL Server與ORACAL、Sybase都是當(dāng)前比較流行的數(shù)據(jù)庫管理系統(tǒng)(RDMS),隨著SQL Server的不斷完善與發(fā)展,以及與網(wǎng)絡(luò)操作系統(tǒng)Windows NT的完美結(jié)合,它為分布式客戶服務(wù)器結(jié)構(gòu)程序設(shè)計提供了良好的開發(fā)環(huán)境,也因此越來越受到人們的重視。由于SQL Server與其他設(shè)計軟件兼容性好,有廣泛應(yīng)用基礎(chǔ)。并且SQL Server具有安全

35、性好、擴展性強、支持?jǐn)?shù)據(jù)復(fù)制、分析功能強大、支持分布式事務(wù)等主要特點。既支持大吞吐里的事務(wù)處理,也支持?jǐn)?shù)據(jù)倉庫和決定支持的應(yīng)用程序。在數(shù)據(jù)庫技術(shù)中用戶可以通過存儲過程與觸發(fā)器的使用來實施復(fù)雜的商業(yè)規(guī)劃,保持?jǐn)?shù)據(jù)庫中文件、數(shù)據(jù)的完整性等。采用SQL Server數(shù)據(jù)倉庫技術(shù),可以及時獲取所需信息,并進(jìn)行快速比較分析,為決策者提供充分合理的依據(jù),并可結(jié)合相關(guān)運籌算法,直接做出決策。Microsoft SQL Server是一個可縮放、高性能的數(shù)據(jù)庫管理系統(tǒng),它提供了與Windows NT線程和調(diào)度服務(wù)、性能監(jiān)視器和事件瀏覽器的集成,基于Windows管理界面并提供對多個服務(wù)器上的遠(yuǎn)程數(shù)據(jù)復(fù)制管理、

36、服務(wù)器管理、診斷和調(diào)整的可視化拖放控制.分布式管理對象(DMO)為SQL Server引擎和服務(wù)提供了一個對象接口。SQL-DMO是為Windows 95與Windows NT操作系統(tǒng)提供的32位OLE自動化對象,OLE是維護(hù)應(yīng)用程序共享對象的標(biāo)準(zhǔn)和方法,是一種允許應(yīng)用程序為進(jìn)行管理或數(shù)據(jù)訪問共享對象的編程方法。DMO是利用OLE結(jié)構(gòu)開發(fā)的,它為與OLE兼容的應(yīng)用程序提供了通向所有SQL Server管理功能的接口,DMO使軟件開發(fā)者直接訪問SQL Server數(shù)據(jù)對象變成可能。我們利用Visual FoxPro等編程工具就可以使用分布式管理對象實現(xiàn)對SQL Server的直接訪問。Micro

37、soft SQL Server所提供的工具使客戶端能通過多種方法訪問服務(wù)器上的數(shù)據(jù),這些工具的核心部分即是Transact-SQL(事務(wù) SQL)代碼。Transact-SQL是結(jié)構(gòu)化查詢語言(SQL)的增強版本,它提供了許多附加的功能和函數(shù)。利用Transact-SQL,你可以創(chuàng)建數(shù)據(jù)庫設(shè)備、數(shù)據(jù)庫和其它數(shù)據(jù)對象、從數(shù)據(jù)庫中提取數(shù)據(jù)、修改數(shù)據(jù),也可以動態(tài)地改變SQL Server中的設(shè)置。因此,使用Transact-SQL大大地提高了應(yīng)用程序的實用性。(三)JDBC數(shù)據(jù)庫訪問技術(shù)JDBC API為Java開發(fā)者使用數(shù)據(jù)庫提供了統(tǒng)一的編程接口,它由一組Java類和接口組成。JDBCAPI使得開

38、發(fā)人員可以使用純Java的方式來連接數(shù)據(jù)庫,并進(jìn)行操作.在企業(yè)級環(huán)境中進(jìn)行的數(shù)據(jù)庫操作遠(yuǎn)遠(yuǎn)不只是連接數(shù)據(jù)庫并執(zhí)行語句,還需要考慮其他方面的要求,包括使用連接緩沖池來優(yōu)化資源的使用,實現(xiàn)分布式事務(wù)處理。在JOBC3.0版本里,包括了兩個包:java.sql和javax.sql。java sql:這個包中的類和接口主要針對基本的數(shù)據(jù)庫編程服務(wù),如生成連接、執(zhí)行語句以及準(zhǔn)備語句和運行批處理查詢等。同時也有一些高級的處理,比如批處理更新、事務(wù)隔離和可滾動結(jié)果集等。java.sql:它主要為數(shù)據(jù)庫方面的高級操作提供了接口和類。如為連接管理、分布式事務(wù)和舊有的連接提供了更好的抽象,它引入了容器管理的連接池

39、、分布式事務(wù)和行集等。數(shù)據(jù)庫廠商一般會提供一組API訪問數(shù)據(jù)庫。MS SQLesvrer的JDBC驅(qū)動程序的Jar包包括:mssqslesver.jar;msbase.jar;msutil.jar。第三章 系統(tǒng)的設(shè)計一、需求分析 (一)系統(tǒng)描述本系統(tǒng)的主要功能是實現(xiàn)根據(jù)客戶上月的日均余額、ATM交易筆數(shù)、Pos筆數(shù)和代繳費來計算其積分,并提供給用戶多種查詢方式。為了方便有針對性地開發(fā)各項業(yè)務(wù),客戶經(jīng)理可以根據(jù)需要產(chǎn)生多種類型的報表,以便分析消費行為。系統(tǒng)管理員則可以添加、修改、刪除客戶經(jīng)理信息以及系統(tǒng)管理員信息。1消費類型 本系統(tǒng)根據(jù)銀行要求對于四種消費進(jìn)行積分計算,滿分100。四種消費是:(

40、1)ATM消費:每月在ATM上進(jìn)行交易的次數(shù)。 (2)POS消費:每月在商戶的POS機上交易的次數(shù)。(3)代繳費:每月采用本銀行提供的水、電、煤、電話、手機等代繳費功能交易的金額。(4)日均余額:每月該用戶賬戶中存款金額*存款天數(shù)/30。2積分標(biāo)準(zhǔn)四種消費類型所占比重以及額度標(biāo)準(zhǔn)由銀行確定,并能夠靈活性,也就是說比重以及額度標(biāo)準(zhǔn)可以隨時調(diào)整。3用戶具有的功能用戶可以查詢積分明細(xì)的歷史記錄,也可以查詢截至到當(dāng)日本月的積分明細(xì)。4客戶經(jīng)理具有的功能按照客戶類型(銀卡、金卡、鉆石卡)、消費類型來進(jìn)行查詢,并生成相應(yīng)的報表。5系統(tǒng)管理員具有的功能每月月末執(zhí)行計算功能,將所有用戶的本月積分計算并倒入到歷

41、史庫中。按照客戶類型(銀卡、金卡、鉆石卡)、消費類型來進(jìn)行查詢,并生成相應(yīng)的報表??蛻艚?jīng)理信息維護(hù),包括增加、刪除、修改。系統(tǒng)管理員信息維護(hù),包括增加、刪除、修改。(二)系統(tǒng)要求1正確性需求此系統(tǒng)所需的數(shù)據(jù)由各生產(chǎn)系統(tǒng)導(dǎo)入到SQL Server數(shù)據(jù)庫中,保證了數(shù)據(jù)來源的正確性。2安全性需求用戶在使用系統(tǒng)時通過管理員分配的操作員編號、密碼進(jìn)行登陸,保證安全性。3界面需求進(jìn)入系統(tǒng)后,左邊的導(dǎo)航欄中為相應(yīng)的菜單,右邊的頁面處顯示點擊相應(yīng)菜單所對應(yīng)的信息。4精度需求 系統(tǒng)對貴賓客戶每項的積分按照其實際貢獻(xiàn)額度與所持卡類型貴賓客戶應(yīng)有的貢獻(xiàn)額度的百分比值來計算,因此運算時保留小數(shù)點后兩位。5穩(wěn)定性需求保

42、證服務(wù)器與客戶端網(wǎng)絡(luò)正常情況即可。6靈活性需求用戶當(dāng)查詢客戶的積分時,可以通過刷卡或手工輸入民生卡號。7輸入輸出需求8數(shù)據(jù)輸入需求貴賓客戶信息的查詢和補錄,需先輸入民生卡號。9數(shù)據(jù)輸出需求生成的報表輸出方式為導(dǎo)出的Excel;10可維護(hù)性需求系統(tǒng)如需維護(hù)僅在服務(wù)器端更新,客戶端無影響。二、系統(tǒng)的總體設(shè)計三、關(guān)鍵技術(shù)實現(xiàn)(一)JDBC的工作原理1JDBC程序?qū)崿F(xiàn)的步驟(1)引入一個必要的類;(2)加載JDBC驅(qū)動程序;(3)標(biāo)識數(shù)據(jù)源(URL、Username、Password); (4)分配一個Connection對象;(5)分配一個Statement對象;(6)使用該Statement對象執(zhí)

43、行檢查 SQL語句;(7)從返回的ResultSet對象中檢索數(shù)據(jù)類似于游標(biāo)的操作;(8)關(guān)閉ResultSet對象;(9)關(guān)閉Statement對象;(10)關(guān)閉Connection對象;2裝載驅(qū)動程序 通過JDBC來連接關(guān)系數(shù)據(jù)庫,應(yīng)用程序必須采取的第一個合理步驟是加載合適的JDBC驅(qū)動程序,并獲得一個與該數(shù)據(jù)庫的連接。使用JDBC的DriverManager類可以實現(xiàn)。DriverManager類實現(xiàn)了java.sql.Driver接口。加載Driver接口并把它注冊給DriverManager類有兩種方法: (1)使用Class.forName()方法;(2)標(biāo)識jdbc.driver

44、s系統(tǒng)屬性內(nèi)的Driver類。 在本論文中采用第一種方式,主要的代碼如下:Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstance();3建立連接 實現(xiàn)Connection接口的一個類對象(即一個Connection對象)代表一個與某個具體數(shù)據(jù)源的連接。Connection對象實際上是建立一個上下文環(huán)境,以便程序員能在它里面創(chuàng)建并執(zhí)行SQl命令。在本論文中的關(guān)鍵代碼如下: Connection con=java.sql.DriverManager.getConnection(jdbc:microsoft:sq

45、lserver:/:1433;DatabaseName=customer,sa,123); 4語句與結(jié)果集 Statement接口提供了執(zhí)行SQL語句和檢索結(jié)構(gòu)的一種方法。由于Statement是一個接口,所以程序員不能直接創(chuàng)建一個Statement對象。通常創(chuàng)建這個對象的方法是: Statement statement = connection.createStatement(); 當(dāng)建成一個Statement對象之后,它提供一個工作空間供用戶創(chuàng)建SQL查詢,執(zhí)行該查詢,以及檢索返回的查詢結(jié)果。當(dāng)建成一個Statement對象之后,就可以通過調(diào)用該Statement對象的下列執(zhí)行方法來執(zhí)行S

46、QL查詢:executeQuery()用于在單個ResultSet對象的數(shù)據(jù)庫中檢索出數(shù)據(jù)的SQL語句。 本論文中部分相關(guān)的代碼:Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(select * from pointStandard where type=+type+);rs.next();int atm=rs.getInt(atm);int atmpoint=rs.getInt(atmpoint);executeUpdate()執(zhí)行不返回ResultSet對象的查詢。它的返回值是一個整數(shù)(稱為更新計數(shù)),

47、它給出受到影響的行數(shù)。 本論文中計算atm積分值用到更新的語句,其主要代碼為:res=st.executeQuery(select * from atm2 where card=+cusno+);res.next();float atmsum=(res.getInt(autoTimes)*atmpoint)/atm;int col=st.executeUpdate(update atm2 set point=+atmsum+ where card=+cusno+);execute()執(zhí)行返回多個結(jié)果集,多個更新計數(shù)值或這兩者組合的語句。本論文中,在增添信積分記錄、客戶信息、系統(tǒng)管理員信息等多個

48、地方用到該語句,其部分代碼:Date now=new Date();month=now.getMonth()+1;st.execute(insert into hostory(card,atm,pos,charge,dayvalue,point,months) values(+cusno+,+atmsum+,+possum+,+chargesum+,+dayvaluesum+,+sum+,+month+); (二)JavabeanJavaBean 是一種JAVA語言寫成的可重用組件。為寫成JavaBean,類必須是具體的和公共的,并且具有無參數(shù)的構(gòu)造器。JavaBean 通過提供符合一致性設(shè)計

49、模式的公共方法將內(nèi)部域暴露稱為屬性。眾所周知,屬性名稱符合這種模式,其他Java 類可以通過自省機制發(fā)現(xiàn)和操作這些JavaBean 屬性。用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用java代碼創(chuàng)造的對象進(jìn)行打包,并且其他的開發(fā)者可以通過內(nèi)部的JSP頁面、Servlet、其他JavaBean、applet程序或者應(yīng)用來使用這些對象。用戶可以認(rèn)為JavaBean提供了一種隨時隨地的復(fù)制和粘貼的功能,而不用關(guān)心任何改變。1JavaBean的概念按著Sun公司的定義,JavaBean是一個可重復(fù)使用的軟件組件。實際上JavaBean是一種Java類,通過封裝屬性和方法成為

50、具有某種功能或者處理某個業(yè)務(wù)的對象,簡稱bean。由于javabean是基于java語言的,因此javabean不依賴平臺,具有以下特點: (1)可以實現(xiàn)代碼的重復(fù)利用;(2)易編寫、易維護(hù)、易使用;(3)可以在任何安裝了Java運行環(huán)境的平臺上的使用,而不需要重新編譯。2JavaBean的編寫編寫javabean就是編寫一個java的類。為了能讓使用這個bean的應(yīng)用程序構(gòu)建工具知道這個bean的屬性和方法,只需在類的方法命名上遵守以下規(guī)則: (1)如果類的成員變量的名字是xxx,那么為了更改或獲取成員變量的值,即更改或獲取屬性,在類中可以使用兩個方法:getXxx(),用來獲取屬性xxx;

51、 setXxx(),用來修改屬性xxx。(2)對于boolean類型的成員變量,即布爾邏輯類型的屬性,允許使用is代替上面的get和set。 (3)類中方法的訪問屬性都必須是public的。(4)類中如果有構(gòu)造方法,那么這個構(gòu)造方法也是public的并且是無參數(shù)的。3本文中的JavaBean本文中為了保證銀行數(shù)據(jù)的安全可靠,將重要的信息不直接顯示在頁面中,采用了JavaBean實現(xiàn)業(yè)務(wù)內(nèi)容。以下是部分代碼:Jsp頁面中:用來說明使用的javabean的名字,范圍,以及對象的名稱。Javabean:package score;import java.sql.*;public class acce

52、ssuser /用來訪問客戶登陸信息的數(shù)據(jù)庫 private Connection con; public accessuser() /建立與數(shù)據(jù)庫的連結(jié) try /裝載驅(qū)動程序 Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstance(); /創(chuàng)建連接con=java.sql.DriverManager.getConnection(jdbc:microsoft:sqlserver:/:1433;DatabaseName=manager,sa,123); catch(Exception e) e.printS

53、tackTrace(); public int queryuser(String cardno,String password) int re=0; /result=0 表示該貴賓不合法;result=1 表示該貴賓合法 try System.out.println(*); Statement stmt=con.createStatement(); ResultSet rst=stmt.executeQuery(select * from userinformation where userno=+cardno+); rst.next(); System.out.println(cardno)

54、; if(rst.getString(userpassword).equals(password) re=1; rst.close(); stmt.close(); catch(Exception e) e.printStackTrace(); return re; (三)Session在服務(wù)器上,通過為在站點上的用戶創(chuàng)建一個內(nèi)建session對象保存該用戶的信息。當(dāng)用戶第一次訪問站點時,分配給用戶一個session對象和一個單獨的會話ID,這個ID是惟一的。在接下來的請求中,會話ID標(biāo)識了這個用戶,session對象作為請求的一部分發(fā)送給servlet,servlet能從session對象中

55、讀取信息,或者為其添加信息。當(dāng)客戶端允許使用Cookie時,內(nèi)建Session對象使用Cookie進(jìn)行會話跟蹤,如果客戶端禁用Cookie,則選擇使用URL重寫。session對象和客戶端的會話緊密聯(lián)系在一起,它由容器自動創(chuàng)建。session對象主要方法有:getAttribute(String name),setAttribute(String name, java.lang.Object value),removeAttribute(String name)等。本文中主要用session來記錄用戶的卡號或是管理員的工號,以便一次登陸多處使用。其中部分代碼如下:保存信息到session中:s

56、ession.setAttribute(adminno,adminno);從session中讀取信息:String usercard=session.getAttribute(userno).toString();(四)SQL語句SQL是一種介于關(guān)系代數(shù)與關(guān)系演算之間的結(jié)構(gòu)化查詢語言,其功能并不僅僅是查詢。SQL是一個通用的、功能極強的關(guān)系數(shù)據(jù)庫語言。1定義基本表SQL語言使用CREATE TABLE語句定義基本表,其一般格式為:CREATE TABLE(列級完整性約束條件 ,列級完整性約束條件。 ,);其中是所要定義的基本表的名字,它可以由一個或多個屬性(列)組成。2查詢其一般格式為: SE

57、LECTALL|DISTNCT, FROM, WHILE GROUP BYHAVING ORDER BYASC|DESC;整個SELECT語句的含義是,根據(jù)WHERE子句的條件表達(dá)式,從FROM子句指定的基本表或視圖中找出滿足條件的元組,再按SELECT子句中的目標(biāo)列表達(dá)式,選出元組中的屬性值形成結(jié)果表。如果有GROUP子句,則將結(jié)果按的值進(jìn)行分組,該屬性列值相等的元組為一個組。通常會在滿足指定條件的組中作用集函數(shù)。如果GROUP子句帶HAVING短語,則只有滿足指定條件的組才予輸出。如果有ORDER子句,則結(jié)果表還要按的值的升序或降序排序。SELECT語句既可以完成簡單的單表查詢,也可以完成

58、復(fù)雜的連接查詢和嵌套查詢。本文中用到的查詢語句比較多,下面列舉其中一部分代碼:select * from pointStandard where type=+type+select * from atm2 where card=+cusno+3插入數(shù)據(jù) SQL的數(shù)據(jù)插入語句INSERT通常有兩種形式。一種是插入一個元組,另一種是插入子查詢結(jié)果。后者可以一次插入多個元組。(1) 插入單個元組其一般格式為: INSERT INTO(,) VALUE(,。); 其功能是將新元組插入指定表中。其中新記錄屬性列1的值為常量1,屬性列2的值為常量2,。INTO子句中沒有出現(xiàn)的屬性列,新記錄在這些列上將取空

59、值。 但必須注意的是,在表定義時說明了NOT NULL的屬性列不能取空值。否則會出錯。如果INTO子句中沒有指明任何列名,則新插入的記錄必須在每個屬性列上均有值。本設(shè)計中主要用到這種插入方式,其中部分代碼:insert into hostory(card,atm,pos,charge,dayvalue,point,months) values(+cusno+,+atmsum+,+possum+,+chargesum+,+dayvaluesum+,+sum+,+month+)(2) 插入子查詢結(jié)果子查詢不僅可以嵌套在SELECT語句中,用以構(gòu)造父查詢的條件,也可以嵌套在INSERT語句中,用以生

60、成要插入的批量數(shù)據(jù)。其一般格式為; INSERT INTO(,屬性列2) 子查詢;4修改數(shù)據(jù)其一般格式為:UPDATESET=,=WHERE;其功能是修改指定表中滿足WHERE子句條件的元組。其中SET子句給出的值用于取代相應(yīng)的屬性列值。如果省略WHERE子句,則表示要修改表中的所有元組。本設(shè)計中,用到修改語句的部分代碼:update customerInformation set point=+sum+ where card=+cusno+update pos1 set point=+possum+ where card=+cusno+5刪除數(shù)據(jù)其一般格式為:DELETEFROMWHERE;

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論