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

正文內(nèi)容

畢業(yè)設(shè)計--jsphibernate的企業(yè)級購物網(wǎng)站的開發(fā)-資料下載頁

2025-01-17 00:28本頁面
  

【正文】 密碼以及新密碼確認,如果原始密碼正確、新密碼和新密碼確認相同則修改密碼成功,否則修改失敗。 ( 5)商品查詢:在搜索欄中輸入商品關(guān)鍵字,匹配相關(guān)商品信息,跳轉(zhuǎn)頁面。 ( 6)添加至購物車:已登錄用戶通過搜索相關(guān)匹配文字找到想購買的票,點擊添 加至購物車按鈕,將商品簡介信息添加至購物車,用戶直接在購物車中進行付款購買。 ( 7) 訂單查詢:選中購買商品并購買后,可在我的訂單中查找到相關(guān)商品訂單信 息。包括:商品名稱、商品價格、商品數(shù)量、商 品描述等。 系統(tǒng)數(shù)據(jù)處理 數(shù)據(jù)描述: ( 1)靜態(tài)數(shù)據(jù)描述 系統(tǒng)靜態(tài)數(shù)據(jù)需要如下幾個表: ① 登錄信息表 此表存放的是用戶的登錄信息 表 登錄信息表 編號 字段名稱 字段類型 字段說明 1 Id Int 自增類型 ,數(shù)據(jù)唯一標(biāo)示符 2 userName String 用戶名 ,不能為空 3 Password String 用戶密碼 用戶 用戶信息 用戶密碼修改 用戶信息數(shù)據(jù)庫 新密碼信息 ② 購物車表 表 購物車表 編號 字段名稱 字段類型 字段說明 1 Id Int 自增類型 ,數(shù)據(jù)唯一標(biāo)示符 2 userid Int 對應(yīng)登陸用 戶的 Id 3 shuliang Int 購買票的數(shù)量 4 zongjia Int 購買票的總價 ( 2)動態(tài)數(shù)據(jù)描述 輸入數(shù)據(jù):菜單選項,查找關(guān)鍵字,新建記錄項。 輸出數(shù)據(jù):由查詢關(guān)鍵字確定的數(shù)據(jù)庫記錄集合。 內(nèi)部生成的數(shù)據(jù):中間查詢結(jié)果。 ( 3)數(shù)據(jù)庫描述 系統(tǒng)是使用 Oracle 數(shù)據(jù)庫進行數(shù)據(jù)存儲。 數(shù)據(jù)流圖: ( 1)登錄模塊數(shù)據(jù)流圖 圖 登錄模塊數(shù)據(jù)流圖 登錄模塊數(shù)據(jù)流中“登錄信息”和“用戶信息”的組成如下: 登錄信息 = 用戶名 + 密碼 用戶信息 = 用戶 ID + 用戶名 + 密碼 ( 2) 用戶密碼修改數(shù)據(jù)流圖 圖 用戶密碼修改數(shù)據(jù)流圖 用戶密碼修改數(shù)據(jù)流圖中的“用戶信 息”與“新密碼信息”的數(shù)據(jù)組成如下: 用戶信息 = 用戶 ID + 用戶名 + 用戶密碼 新密碼信息 = 用戶名 + 原始密碼 + 新密碼 + 新密碼確認 登錄信息 user loginn 用戶信息數(shù)據(jù)庫 用戶信息 ( 3)用戶個人中心數(shù)據(jù)流圖 圖 用戶個人中心數(shù)據(jù)流圖 用戶個人中心數(shù)據(jù)流圖中的“查詢用戶信息”與“訂票”和“退票”的數(shù)據(jù)組成如下: 查詢用戶信息 = 用戶 ID + 用戶名 + 用戶密碼 訂票 = 用戶名 + 票 ID + 場館 ID 退票 = 用戶名 + 票 ID + 購物車 ID 開發(fā)平臺及工具 本系統(tǒng)的開發(fā)平臺及工具如下: (1) 軟件平臺 操作系統(tǒng): Windows 7/ Windows 8。 數(shù)據(jù)庫: Oracle。 Web 服務(wù)器: Tomcat6。 瀏覽器:任何版本的瀏覽器,只要能開 web 網(wǎng)頁 (2) 開發(fā)工具 開發(fā)工具為: MyEclispe。 開發(fā)語言: Java、 JSP、 JavaScript、 HTML、 CSS 等 整體框架: SERVLET+JSP+Hibernate+Struts+Spring+JavaScript 用戶個人中心 修改用戶信息 查詢用戶信息 訂 票 退 票 跳 轉(zhuǎn) 頁 面 第 4 章 總體設(shè)計 系統(tǒng)功能模塊圖 依照實際的情況我們可以將系統(tǒng)分為 5 個主要功能模塊,用戶登錄模塊、商品顯示模塊、購物車模塊、用戶個人中心模塊、注冊登陸模塊、訂單信息模塊。其中商品顯示模塊可以分為城市信息、場館信息和票務(wù)信息三個模塊。 系統(tǒng)的主要功能結(jié)構(gòu)圖如下 : 圖 票務(wù)網(wǎng) 系統(tǒng)架構(gòu)模塊 MVC,在程序中一個永遠離不開的話題。由于層次架構(gòu),在程序設(shè)計之 初就必須形成,對程序整體走向與把握起著十分重要的作用。然而,總讓人困惑的是: MVC 到底是怎么分層的。 第一層: View層 /UI層(界面層): 開發(fā)組成:視圖層: JSP, HTML,標(biāo)簽, JS, CSS,AJAX組成,都是用于顯示數(shù)據(jù)的一些技術(shù)。 相關(guān)處理: ( 1) 界面中所有控件必要的格式判斷。 ( 2)搜集界面中所有控件信息,并將之傳入 Controller/BLL層。(最重要的功能) 第二層: Controller和 Model層: 開發(fā)組成:控制層依靠的是 xml配置文件實現(xiàn)。 a) 控制層( controller): 用 struts2時,采用 FilterDispatcher;不用時采用 servlet或者 spring的控制層模塊。 票 務(wù) 網(wǎng) 注冊登陸 商品顯示 訂單信息 購物車 用戶個人中心 城市信息 場館信息 票務(wù)信息 b) 模型層 (model):模型層定義在 Action包中一系列 action類。用 struts2時,采用action,用于接收用戶請求,調(diào)用業(yè)務(wù)層或者 EJB,返回相關(guān)頁面。 c) 業(yè)務(wù)邏輯層:業(yè)務(wù)邏輯層定義在 service包中,并在包中定義系列 service實現(xiàn)類,實現(xiàn)具體業(yè)務(wù)功能操作。系統(tǒng)功能的真正實現(xiàn),即 service。完成具體的業(yè)務(wù)操作,比如將數(shù)據(jù)經(jīng)過算法處理,或者調(diào)用數(shù)據(jù)訪問層。 相關(guān)處理 : ( 1)接收界面層的數(shù)據(jù)。 ( 2)數(shù)據(jù)類型格式的轉(zhuǎn)換。 ( 3)處理業(yè)務(wù)邏輯。如決定如何調(diào)用以及組織 Model/DAL層的方法(增刪改查),決定 實例化的對象(角色),權(quán)限的判斷控等。 ( 4)提供對特定類的具有針對性的方法或接口。 ( 5)對數(shù)據(jù)庫訪問類的組織和管理。 第三層: 數(shù)據(jù)訪問層: 相關(guān)組成:定義在 Dao包中,工程加載框架 ( 1) Dao層:與數(shù)據(jù)庫的連接操作, 提供對數(shù)據(jù)庫基本操作訪問的方法或接口(增刪改查)。 ( 2) 持久化層:專門對數(shù)據(jù)進行持久化操作,不負責(zé)算法處理或邏輯運算,只負責(zé)增刪改 查。(開發(fā)中使用 Hibernate等主流框架實現(xiàn)數(shù)據(jù)持久化) ( 3) DateBase(數(shù)據(jù)層):當(dāng)前主流的數(shù)據(jù)庫。數(shù)據(jù)的存放地,比如各種數(shù)據(jù)庫。該層也能完成一些業(yè)務(wù)功能,比如使用存儲過程,觸發(fā)器等。 然而,對于我們來說,爭議最大的地方便是 BLL層。其實都知道 BLL層 是處理業(yè)務(wù)邏輯的??墒?,邏輯?到底是什么邏輯呢?邏輯判斷到底放在哪? BLL層的一個設(shè)計準則是:對上層提供最為簡單最為明確最為實用的方法。換句話說,就是提供的方法盡量少的且功能強大。如果你提供的方法越多,就意味著越復(fù)雜,上層用起來就越繁瑣,對上 層人員十分不便。如果方法越少,那么這個 BLL就越有通用性,也就是說可復(fù)用的程度就大增,對于界面層的結(jié)構(gòu)布局也起到統(tǒng)一的作用。 還有很多人, BLL層就直接返回 DAL層的方法,如 return 類名 .方法 ()。這樣一來 BLL層名存實亡,存在的價值就根本沒有了(完全可以去掉),這樣形成的架構(gòu),就看似頭重腳輕,架構(gòu)的穩(wěn)定性、靈活性、拓展性十分差。其實我想說,這是完全錯誤的做法。MVC架構(gòu)其實就好比一個金字塔,如下圖: 圖 MVC 架構(gòu)圖 由此可以得出,將業(yè)務(wù)層和持久化層分開設(shè)計,好處有: ( 1)可 以提高系統(tǒng)的可擴展性,增加新功能的步驟與現(xiàn)有模塊不沖突; ( 2)方便查錯與調(diào)試,某一層出現(xiàn)問題不會牽一發(fā)而動全身; ( 3)方便移植,數(shù)據(jù)升級只需改動持久化層,或者業(yè)務(wù)變更只需改動業(yè)務(wù)層而不影響數(shù)據(jù)庫; ( 4)解耦,各層之間使用 XML文件標(biāo)明各層模塊的位置,如需變動,無須程序員到場即可由使用者自行更改; ( 5)規(guī)范化,每一個業(yè)務(wù)功能點的實現(xiàn)都按照相同的結(jié)構(gòu)實現(xiàn),即由上述幾層構(gòu)成。 所以,我們對于 MVC模式的縮放的理解為: ① 將控制 器與視圖合并; ② 將控制器與模型端合并; ③ 將控制器與視圖、模型三者合并; 可以更簡單,但違反了軟件工程的基本思想:可擴展性、可維護性,甚至不符合面向?qū)ο蟮乃枷搿? 用戶注冊登錄模塊 用戶注冊模塊 用戶通過進入首頁后點擊右上方注冊鏈接,即可跳轉(zhuǎn)到注冊頁面,注冊內(nèi)容包括有: 用戶名、密碼、確認密碼、性別、年齡、所在城市等。填寫注冊信息時,密碼和用戶名都不能為空,密碼和確認密碼必須要一致,兩者缺一不可。待注冊通過后點擊提交按鈕,進行注冊。 具體如下圖所示: 圖 用戶注冊 頁面 圖 密碼格式不一致頁面 以上界面為注冊界面。需要注冊的用戶只需將相應(yīng)的信息在注冊界面填寫,即可完成注冊。之后就可以在登陸界面進行登錄了。 如果密碼輸入為空,或者驗證碼輸入為空,郵箱地址為空,密碼和確認密碼不一致,密碼設(shè)置不在 612 個字的范圍內(nèi)的話,將不能進行注冊。 用戶注冊關(guān)鍵代碼: ( 1) public void doadd(Users user){ ().save(user)。 } ( 2) if (().getSession().getAttribute(rand)==null) { ().getSession().setAttribute(zhuce_info, 驗證碼已經(jīng)過期,請重新刷新頁面注冊! )。 return zhuce_no。 } else { if (().getSession(). getAttribute(rand).equals(yanzheng)) { (user)。 ().getSession().setAttribute(zhuce_info2,注冊成功!?。?)。 return zhuce_ok。 } else { ().getSession().setAttribute(zhuce_info,驗證碼輸入錯誤,請 重 新輸入! )。 return zhuce_no。 } } } 用戶注冊關(guān)鍵代碼: ( 1)通過 hibernate 提供的 API,往 Oracle 數(shù)據(jù)庫中添加對應(yīng)用戶的注冊信息。 ( 2)第一:當(dāng)用戶注冊時,首先通過獲取注冊界面請求參數(shù)中的驗證碼,判斷其驗證碼是否等于空。如果為空,就返回自定義的字符串,此字符串對應(yīng)匹配的注冊失敗的界面,同時將注冊失敗的信息設(shè)置到響應(yīng)參數(shù)類,傳遞給其界面。 第二:如果驗證碼的內(nèi)容是“ yanzheng”,那么調(diào)用 dao 方法進行保存,同時將用戶輸入的注冊信息傳遞給此方法,讓其保存到數(shù)據(jù)庫中,并且返回注冊成功界面對應(yīng)的 result 值和設(shè)置注冊成功的信息到響應(yīng)參數(shù)中。 第三:如果以上兩個條件都不符合,也就是說驗證碼不為空,并且驗證碼的內(nèi)容 不是“ yanzheng”的話,就直接返回注冊失敗的頁面對應(yīng)的字符串和響應(yīng)注冊失敗的內(nèi)容。 用戶登錄模塊 用戶通過進入首頁后點擊右上方登陸鏈接,即可跳轉(zhuǎn)到登陸頁面。通過輸入注冊時自己輸入的昵稱、密碼和驗證碼進行登陸。密碼和用戶名都不能為空,驗證碼也不能輸入錯誤。 用戶也可以 由用戶訂單界面跳轉(zhuǎn)到用戶登錄界面。當(dāng)用戶想要購買商品或者添加入購物車時,需要登錄,跳轉(zhuǎn)登陸頁面。 具體如下圖所示: 圖 用戶登錄頁面 以上界面為票務(wù)網(wǎng)的登陸界面。用戶只需將用戶名及密碼和驗證碼輸入到相應(yīng)的框內(nèi),也可以選擇十天內(nèi)免登陸,第二次登陸時不手動輸入即可直接登陸成功。若用戶還沒有注冊,則需點擊注冊為新用戶進入注冊界面進行注冊,之后直接跳轉(zhuǎn)到登陸界面即可登錄了。 用戶登陸關(guān)鍵代碼: ( 1) public ListUsers dolog(Users user){ ListUsers list = ().loadAll()。 if(list==null)(沒查到 )。 (有數(shù)據(jù) )。 return list。 } ( 2) public Users log(Users user) { ListUsers list = (user)。 for(Users u: list){ if(().equals(())amp。amp。().equals(() )){ return u 。 }} return null。 } ( 3) public String denglu(){ if(().getSession().getAttribute(rand2) == null) { ().getSession().setAttribute(
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1