freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于ssh的體育用品銷售管理系統(tǒng)開發(fā)畢業(yè)論文(設(shè)計(jì))(已改無錯(cuò)字)

2022-10-07 14:17:34 本頁面
  

【正文】 cost Number 訂單價(jià)格 userid Varchar2(16) FK 用戶編號(hào) statusid Number FK 訂單狀態(tài) paywayid Number FK 付款方式 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 12 (5) payway 表:用戶選擇付款方式 如表 : 表 付款方式表 字段名 字段類型 約束或索引 描述 Paywayid Number PK 記錄流水號(hào) paystyle Varchar2(16) 付款方式 (6)contactionfo 表:查看訂單詳細(xì)信息 如表 所示 : 表 訂單詳細(xì)信息表 字段名 字段 類型 約束或索引 描述 contactid Number PK 記錄流水號(hào) userid Varchar2(16) FK 用戶編號(hào) street1 Varchar2(64) 聯(lián)系地址 zip Varchar2(8) 郵編 Varchar2(32) Email地址 homephone Varchar2(16) 家庭電話 cellphone Varchar2(16) 手機(jī)號(hào)碼 officephone Varchar2(16) 辦公室電話 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 13 系 統(tǒng)組成 系統(tǒng)組成表如表 : 表 系統(tǒng)組成表 用戶表示層 (View) 控制處理層 (Controller) 業(yè)務(wù)邏輯層 (Model) Action Admin Category Contactioninfo IShopCart Order Orderline Orderstatus Payway Product ShopCart User AddProductAction AdminLoginAction AdminProductAction ExitAction IndexAction LoginAction ModifyAction ..... ..... ..... 系統(tǒng)文件組織設(shè)計(jì) 采用分層 開發(fā)設(shè)計(jì),這樣的好處是分工明確,適合團(tuán)隊(duì)開發(fā)。如果某個(gè)地方出現(xiàn)錯(cuò)誤不會(huì)影響其他層。這是一種高內(nèi)聚低耦合的設(shè)計(jì)思想。 為體現(xiàn) Struts 框架結(jié)構(gòu)的設(shè)計(jì)思想,可采用以下的包結(jié)構(gòu)的設(shè)計(jì)思想。 WebRoot中的文件主要是直接為用戶提供服務(wù)的頁面文件,也就是 MVC中的 (View) ,負(fù)責(zé)界面的顯示和與用戶的交互。這樣以來, View只使用或調(diào)用 action里的服務(wù),而action和 service也只調(diào)用 dao里面的方法。這種調(diào)用方向單一,有效地降低了耦合,增強(qiáng)了內(nèi)聚。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 14 系統(tǒng)文件的組織 如圖 所示 : 圖 系統(tǒng)文件的組織 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 15 第四章 詳細(xì)設(shè)計(jì) 詳細(xì)設(shè)計(jì)是對(duì)系統(tǒng)架構(gòu)設(shè)計(jì)的精化,主要是在系統(tǒng)需求規(guī)格和架構(gòu)設(shè)計(jì)的基礎(chǔ)上,對(duì)系統(tǒng)用例中使用的類和對(duì)象進(jìn)行進(jìn)一步 的 精化,確定每一個(gè)類的屬性和方法。 系統(tǒng)運(yùn)行環(huán)境 系統(tǒng)運(yùn)行的操作系統(tǒng)為 Windows,也可以移植到 Linux、 Unix 等操作系統(tǒng)下執(zhí)行,數(shù)據(jù)庫采用 Oracle 10g,應(yīng)用服務(wù)器采用符合 J2EE 規(guī)范的 應(yīng)用服務(wù)器。 系統(tǒng)部署架構(gòu) 整個(gè)應(yīng)用部署在一臺(tái)應(yīng)用服務(wù)器、一臺(tái)數(shù)據(jù)庫服務(wù)器上。系統(tǒng)可以可以使用企業(yè)內(nèi)部局域網(wǎng), 也可以通過廣域網(wǎng)訪問系統(tǒng)。 系統(tǒng)時(shí)序圖 在 體育用品銷售管理 系統(tǒng)設(shè)計(jì)過程中 , 時(shí)序圖如 圖 所示。 圖 系統(tǒng)時(shí)序圖 ( 1) 界面:在本項(xiàng)目中指 JSP頁面,在具體的時(shí)序圖中被實(shí)際的頁面文件所替代。 ( 2) Action:指 Struts 中的 Action 的具體實(shí)現(xiàn)類,在具體的時(shí)序圖中被實(shí)際的類所替代。其作為控制器的一部份存在。 ( 3) BO:業(yè)務(wù)邏輯操作對(duì)象( Bussiness Object),執(zhí)行功能的業(yè)務(wù)邏輯職責(zé),在具體的時(shí)序圖中被實(shí)際的類所替代。如果某個(gè)功能沒有業(yè)務(wù) 邏輯處理,此類可以不在時(shí)序圖中存在。 ( 4) DAO:為數(shù)據(jù)操作類處理相應(yīng)的數(shù)據(jù)庫操作。 ( 5) HibernateDataSource:數(shù)據(jù)操作實(shí)現(xiàn)類,用來執(zhí)行實(shí)際的數(shù)據(jù)庫訪問。 系統(tǒng)的持久化層具體實(shí)現(xiàn) 定義 Hibernate 工廠類 本系統(tǒng)采用 Struts 和 Hibernate 技術(shù)進(jìn)行開發(fā),由 Hibernate 進(jìn)行數(shù)據(jù)庫連接和數(shù)據(jù)對(duì)象的操作 ,這里定義一個(gè) HibernateSessionFactory類去負(fù)責(zé)初始化 Hibernate。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 16 由它創(chuàng)建全局的 SessionFactory 工廠類,并且提 供創(chuàng)建和關(guān)閉 session 實(shí)例,創(chuàng)建HibernateTransaction 負(fù)責(zé)打開 /關(guān)閉事物。這樣在使用 hibernate 時(shí)更加方便 ,不用每次為創(chuàng)建 SessionFactory 實(shí)例, Session 實(shí)例或者關(guān)閉 Session 實(shí)例 ,打開 /關(guān)閉,事物操作單獨(dú)這些代碼,只要調(diào)用上面的類的方法就可以了,從而簡(jiǎn)化了操作。 使用 Dao 模式 本系統(tǒng)的持久化邏輯采用 Hibernate 作為中間件 ,并使用 DAO 設(shè)計(jì)模式實(shí)現(xiàn)。主要是在業(yè)務(wù)核心方法和具體數(shù)據(jù)源之間增加一層 ,這樣就減少了兩者的耦合。每個(gè)持久化類對(duì)應(yīng)一個(gè) DAO類 ,它實(shí)現(xiàn)了持久化類的創(chuàng)建、查詢、更新及刪除方法,以及其它訪問持久化機(jī)制的方法。本系統(tǒng)所有與數(shù)據(jù)庫邏輯有關(guān)的方法都在 IDao 接口中,在 包下創(chuàng)建一個(gè) Dao 的接口,并在 包下創(chuàng)建一個(gè) impl 繼承 Dao 接口實(shí)現(xiàn)具體的操作。 系統(tǒng)業(yè)務(wù)邏輯層設(shè)計(jì) 業(yè)務(wù)邏輯層中只包含業(yè)務(wù)邏輯,不包含任何與數(shù)據(jù)庫的交互,因此減少了訪問過程中與數(shù)據(jù)庫交互的過程,大大提高了運(yùn)行的速率。業(yè)務(wù)邏輯層的實(shí)現(xiàn)需要調(diào)用持久化層和數(shù)據(jù)庫交互功能的支持。本系統(tǒng)所有與業(yè)務(wù)邏輯有關(guān)的方法都在 Service 接口中,并且在 包中創(chuàng)建一個(gè) impl 包,此包中的類是對(duì) service 接口的實(shí)現(xiàn)。 系統(tǒng)接口及映射文件的實(shí)現(xiàn)設(shè)計(jì) 本系統(tǒng)的持久化邏輯采用 Hibernate 作為中間件 ,并使用 DAO 設(shè)計(jì)模式實(shí)現(xiàn)。主要是在業(yè)務(wù)核心方法和具體數(shù)據(jù)源之間增加一層 ,這樣就減少了兩者的耦合。 每個(gè)持久化類對(duì)應(yīng)一個(gè) DAO,它實(shí)現(xiàn)了持久化類的創(chuàng)建、查詢、更新及刪除方法,即CRUD(create 、 retrieve、 update、 delete)方法,以及其他訪問持久化機(jī)制方法。 本系統(tǒng)所有與數(shù)據(jù)庫邏輯有關(guān)的方法都在 Dao的實(shí)現(xiàn)類中,現(xiàn)在 dao包下創(chuàng)建接口IProductDao、 IOrderDao、 IUserDao ,并在 包下創(chuàng)建接口的實(shí)現(xiàn)類ProductDaoImpl OrderDaoImpl、 UserDaoImpl,注意要繼承相應(yīng)的接口。 為了使用 Hibernate 來持久化對(duì)象 ,首先要根據(jù)數(shù)據(jù)庫的各個(gè)表創(chuàng)建映射文件 .每個(gè)類都對(duì)應(yīng)的 Hibernate 映射文件,且都放到 bean 包下。 模塊功能設(shè)計(jì)與實(shí)現(xiàn) 登陸功能 任何 的用戶都必須通過登陸界面進(jìn)入購書系統(tǒng) 。 在登錄界面上用戶可以輸入用戶名和密碼進(jìn)行登錄,在登錄時(shí)用戶可以選擇以不同的角色身份登錄。如果用戶名和密碼正確,將成功跳轉(zhuǎn)到體育用品銷售管理系統(tǒng)主頁面,如果不正確,提示給用戶錯(cuò)誤信息,并且還跳轉(zhuǎn)到登錄界面繼續(xù)登錄。具體實(shí)現(xiàn)思想 :首先客戶端驗(yàn)證通過 JavaScript 來完成,比如用戶沒有輸入用戶名時(shí)提示客戶用戶名不能為空,密碼為空時(shí)提示密碼不能為空。只有用戶名和密碼都填寫好以后才能進(jìn)行客戶端數(shù)據(jù)的提交,這樣使得操作更加方便并且提高效率。當(dāng)數(shù)據(jù)提交以后,表單中的數(shù)據(jù)將經(jīng)過攔截 器,它的作用是為參數(shù)作類型轉(zhuǎn)換,這個(gè)過程是自動(dòng)完成的,無須我們?nèi)プ鬟@部分工作。我們?cè)?logAction 里面也有定義兩個(gè)實(shí)例變量: name 和 password 并且寫上對(duì)應(yīng)的 set/get 方法。 然后判斷登錄的身份為普通用戶還是管理員,輸入的用戶名和密碼是否正確,action 里面的 execute 方法調(diào)用 IUserService 接口中的 login(Customer c)方法實(shí)現(xiàn)登錄的合法性驗(yàn)證。如果為普通用戶,在此 service 方法中首先要調(diào)用 dao 方法中的find(String name) 方法判斷數(shù)據(jù)庫 customer 表中是否存在名字為 name 的記錄,如果不存在提示用戶輸入的用戶名不存在,如果存在,繼續(xù)判斷密碼是否于數(shù)據(jù)庫中的密碼相同,相同的時(shí)候表示登錄成功 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 17 execute 方法返回 Success,然后 struts2 根據(jù)配置文件的配置跳轉(zhuǎn)到相關(guān)的頁面,也就是銷售管理的客戶主界面。如果是管理員,我們將把 servletContext 里面的 admin鍵值對(duì)讀出,如果用戶密碼都正確跳轉(zhuǎn)到管理界面否則提示出錯(cuò)。 無論是用戶還是管理員,在登錄成功后都把 Service 層的 login 方法返回的Customer 對(duì)象保存到 session范圍內(nèi)。 遇到的問題:在寫 action 的時(shí)候總是忘記把屬性的 set/get 方法寫上,這樣作的后果是 struts是沒法給屬性賦值的,可能會(huì)產(chǎn)生空指針異常。還有就是由于在 execute()方法里面實(shí)際上有普通用戶和管理員的兩個(gè)登錄,所以剛開始寫時(shí)把返回值都寫成了success和 error,這樣是不能跳轉(zhuǎn)到正確的頁面的。 注冊(cè)功能 任何第一次登陸的用戶必須先注冊(cè),與注冊(cè)界面有關(guān)的為 ,在完成注冊(cè)功能時(shí)需要為注冊(cè)功能的實(shí)現(xiàn)定義一個(gè) action 名字為 RegisterAction,在execute()方法中調(diào)用相應(yīng)的 Dao 和 Service 方法實(shí)現(xiàn)注冊(cè)。對(duì)注冊(cè)的用戶進(jìn)行合法性的驗(yàn)證,滿足所有的條件的用戶才能注冊(cè)成功。用戶名作為用戶登錄的唯一標(biāo)識(shí)。在驗(yàn)證注冊(cè)新用戶的過程中加入新加入了 javascript 驗(yàn)證的過程,提示用戶在注冊(cè)時(shí)必須提供用戶名和密碼,且為了密碼的安全,位數(shù)在 6位和 8位之間等等。只由在滿足這一系列條件的情況下才能正常地注冊(cè),否則重新注冊(cè)。 具體實(shí)現(xiàn)的思想:在注冊(cè)界面中,對(duì)于帶有紅色星號(hào)的項(xiàng)必須填寫,其具體的客戶端驗(yàn)證通過 JavaScript 完成,如果沒有填 寫在提交的時(shí)候系統(tǒng)會(huì)提示 用戶填寫相關(guān)的項(xiàng)目。在 JavaScript 文件的 中定義了一個(gè)函數(shù),專門對(duì)注冊(cè)界面提交的表單進(jìn)行合法性驗(yàn)證,如果驗(yàn)證通過,轉(zhuǎn)回 form 中執(zhí)行的 action 屬性,跳轉(zhuǎn)到RegisterAction 的 execute 方法中,在 execute 中接收到從注冊(cè)頁面的表單中的提交的相關(guān)數(shù)據(jù),創(chuàng)建 User 對(duì)象并將提交的數(shù)據(jù)封裝在此 User 類中,調(diào)用 service 中的registerUser 方法對(duì)業(yè)務(wù)邏輯進(jìn)行進(jìn)一步的驗(yàn)證,完全符合條件的情況下才能注冊(cè)成功,否則繼續(xù)進(jìn)行注冊(cè)。 購買商品功能 商品的購買必然要牽涉到購物車的實(shí)現(xiàn),它也是本系統(tǒng)的核心技術(shù)部分,首先是購物車列表的動(dòng)態(tài)顯示,所有商品的數(shù)據(jù)是通過監(jiān)聽器加載進(jìn)內(nèi)存的,通過分頁技術(shù),讓顧客能瀏覽所有的體育用品商品。實(shí)現(xiàn)購物車中的添加體育用品、修改購買的數(shù)量,以及清空購物車的功能。 體育用品列表的動(dòng)態(tài)顯示是在 web 應(yīng)用啟動(dòng)的時(shí)候完成的,使用了創(chuàng)建事件監(jiān)聽器的方式實(shí)現(xiàn)。具體實(shí)現(xiàn):在 listener 包中創(chuàng)建一個(gè) ApplicationListener 類,繼 承系統(tǒng)提供的 ServletContextListener 類,定義 contextIntialized 方法對(duì)體育用品列表信息進(jìn)行初始化工作,在此方法中新建一個(gè) products 類型的對(duì)象,該對(duì)象的構(gòu)造方法就有從數(shù)據(jù)庫中查詢出所有的商品,然后把 products 的對(duì)象存放在 ServletContext范圍內(nèi)的 application 對(duì)象中,存放在 ServletContext 范圍內(nèi)的對(duì)象的生命周期為從web 的啟動(dòng)到 web 服務(wù)器的關(guān)閉時(shí)注銷,因此解決了在整個(gè)系統(tǒng)運(yùn)行的過程中都有體育用品信息的存在,而且不用在每次用到體育用品信息的時(shí)候去數(shù)據(jù)庫中查詢調(diào)用數(shù)據(jù),減少了與數(shù)據(jù)庫的交互性并能提高系統(tǒng)的運(yùn)行效率。采 用 contextDestoriyed 方法刪除存放在 ServletContext 范圍中的體育用品信息。 購物車的創(chuàng)建是在 listener 包中創(chuàng)建一個(gè) ShopCartListener 類,繼承系統(tǒng)提供的HttpSessionListener 類,從 HttpSessionListener 中獲取 session 對(duì)象,創(chuàng)建一個(gè)shopcart 對(duì)象,并把它放在 session 范圍內(nèi),以供用戶使用。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 18 在創(chuàng)建事件監(jiān)聽器以后,一定要在 配置文件中
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1