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

正文內(nèi)容

基于mvc模式的網(wǎng)上超市系統(tǒng)_java課程設(shè)計(jì)-wenkub

2022-09-08 18:50:40 本頁(yè)面
 

【正文】 se,采用 JSP 技術(shù)、 MVC 框架 和 MySQL 數(shù)據(jù)庫(kù)。 而且由于這些已存在的電子商務(wù)平臺(tái)已經(jīng)形成了比較固定的經(jīng)營(yíng)模式,很有可能無(wú)法完全適應(yīng)很多超市本身業(yè)務(wù)擴(kuò)展的需要,所以,為有志于擴(kuò)展經(jīng)營(yíng)范圍的中型或大型超市量身定做一套網(wǎng)上超市系統(tǒng)就顯得尤為重要 。 3. 隨意性:只要有網(wǎng)絡(luò)的地方就可以購(gòu)物,而且可以在本地,瀏覽千里之外的商店的商品,從而擴(kuò)大了購(gòu)物空間和隨意性。當(dāng)下網(wǎng)絡(luò)發(fā)展迅猛,人們對(duì)網(wǎng)絡(luò)的信任度和依賴(lài)度均有很大的提高,這一現(xiàn)象被有商業(yè)頭腦的人發(fā)現(xiàn),從而開(kāi)發(fā)出網(wǎng)上購(gòu)物這種新型購(gòu)物方式,極大改變了傳統(tǒng)的消費(fèi)方式。同傳統(tǒng)的購(gòu)物方式相比,網(wǎng)上購(gòu)物有很多優(yōu)點(diǎn)。 上述優(yōu)點(diǎn)足以使網(wǎng)絡(luò)購(gòu)物系統(tǒng)大紅大紫,因此商家開(kāi)發(fā)一個(gè)網(wǎng)上購(gòu)物超市系統(tǒng)是很有必要的。 設(shè)計(jì)思想 考慮到系統(tǒng) 應(yīng)能適應(yīng)不同商家的需求,故需要保證系統(tǒng)模塊之間的低耦合性 ;同時(shí)為了開(kāi)發(fā)的便利與日后維護(hù)的方便,考慮使用 MVC 模式設(shè)計(jì),使業(yè)務(wù)處理邏輯與頁(yè)面分離,加快開(kāi)發(fā)進(jìn)度。 MVC 框架介紹 : MVC 全名是 Model View Controller,是模型 (model)-視圖 (view)-控制器 (controller)的縮寫(xiě),一種軟件設(shè)計(jì)典范,用于組織代碼用一種業(yè)務(wù)邏輯和數(shù)據(jù)顯示分離的方法,這個(gè)方法的2 假設(shè)前提是如果業(yè)務(wù)邏輯被聚集到一個(gè)部件里面,而且界面和用戶(hù)圍繞數(shù)據(jù)的交互能被改進(jìn)和個(gè)性化定制而不需要重新編寫(xiě)業(yè)務(wù)邏輯。 C 存在的目的則是確保 M 和 V 的同步,一旦 M 改變, V 應(yīng)該同步更新。使用 MVC 應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。 客戶(hù)端應(yīng)能夠?qū)︻櫩唾?gòu)買(mǎi)商品的需求做出友好的相應(yīng),據(jù)此分析客戶(hù)端應(yīng)具有如下功能: (注:考慮到日后系統(tǒng)擴(kuò)展的需要及 系統(tǒng)本身的安全性,必須做到 賬號(hào) 的專(zhuān)人專(zhuān)用,以明晰權(quán)責(zé)分配,防止不必要的意外事故及糾紛的發(fā)生。 3 可行性分析 對(duì)項(xiàng)目技術(shù)支持的分析 該系統(tǒng)采用 JSP+Servlet+JavaBean+Tomcat+MySQL 完成,鑒于作者此前已有這些方面的項(xiàng)目經(jīng)驗(yàn),所以有信心及時(shí)保質(zhì)保量的完成此項(xiàng)目的開(kāi)發(fā)。 社會(huì)因素的分析 該 系統(tǒng)完全由本人獨(dú)立開(kāi)發(fā),其開(kāi)發(fā)模式是本人的自主知識(shí)財(cái)產(chǎn),在法律方面沒(méi)有任何侵權(quán)行為,完全符合合同法的規(guī)定。在支付前會(huì)員需要填寫(xiě)收貨地址,聯(lián)系方式等信息以確保運(yùn)送過(guò)程萬(wàn)無(wú)一失?;谏鲜龇治觯櫩唾?gòu)買(mǎi)商品的用例圖應(yīng)如下圖所示: 4 游 客會(huì) 員注 冊(cè)查 看 商 品購(gòu) 買(mǎi) 商 品查 看 訂 單修 改 密 碼登 錄注 銷(xiāo) e x t e n d s 填 寫(xiě) 訂 單 信 息 e x t e n d s 圖 31 顧客購(gòu)買(mǎi)商品的用例圖 前面已經(jīng)提到,考慮到以后系統(tǒng)擴(kuò)展的需要及出于對(duì)系統(tǒng)本身安全性的考慮,本系統(tǒng)需嚴(yán)格按照賬號(hào)密碼專(zhuān)人專(zhuān)用的原則,以避免出現(xiàn)系統(tǒng)在遭到無(wú)意或惡意破壞時(shí)無(wú)法追究責(zé)任人的現(xiàn)象。同時(shí)管理員都具有商品管理及訂單管理功能。 實(shí)現(xiàn)系統(tǒng)分析階段所設(shè)計(jì)的功能。 圖 33 系統(tǒng)功能結(jié)構(gòu)圖 構(gòu)建開(kāi)發(fā)環(huán)境 開(kāi)發(fā)此系統(tǒng)所需要用到的軟件環(huán)境如下。 Web應(yīng)用服務(wù)器: Tomcat 及其以上版本。數(shù)據(jù)庫(kù): 。開(kāi)發(fā)環(huán)境: MyEclipse。管理員 ER圖: 管 理 員 名 密 碼權(quán) 限管 理 員 圖 42 管理員的 ER 圖 而且該數(shù)據(jù)庫(kù)免費(fèi),操作簡(jiǎn)單,可以節(jié)約開(kāi)發(fā)成本和開(kāi)發(fā)時(shí)間。 表 42 顧客資料表 字段名稱(chēng) 數(shù)據(jù)類(lèi)型 字段大小 是否主鍵 是否為空 說(shuō)明 ame varchar 50 是 否 顧客名稱(chēng) cpw varchar 50 否 否 顧客密碼 c varchar 50 否 是 顧客 Email ( 3) 管理員資料表:用于記錄管理員的信息,主要由管理員名稱(chēng)、管理員密碼、管理員權(quán)限組成,如表所示。 生 成 訂 單 表 單 訂 單 處 理 程 序 購(gòu) 物 車(chē)訂 單管 理 員顧 客1 . / / 提 交 訂 單2 . / / 生 成 訂 單3 . / / 獲 得 當(dāng) 前 購(gòu) 物 車(chē) 信 息4 . / / 將 商 品 加 入 訂 單5 . / / 生 成 訂 單 ( 顧 客 信 息 , 商 品 信 息 )6 . / / 發(fā) 送 訂 單 圖 46 顧客購(gòu)買(mǎi)商品的時(shí)序圖 顧客購(gòu)買(mǎi)商品的活動(dòng)圖 登錄到系統(tǒng)前臺(tái)界面的游客可以瀏覽商品信息,如果有想要購(gòu)買(mǎi)的商品則要進(jìn)行注冊(cè),并向系統(tǒng)提交賬號(hào),密碼和郵箱等信息以在日后顧客再次購(gòu)買(mǎi)時(shí)唯一地標(biāo)識(shí)不同客戶(hù)。服務(wù)器端通過(guò) Servlet 取出存在于數(shù)據(jù)庫(kù)中的表單信息,進(jìn)行顯示。 為了便于實(shí)現(xiàn)業(yè)務(wù)邏輯的清晰化構(gòu)思,將顧客可能進(jìn)行的動(dòng)作進(jìn)行編號(hào),編寫(xiě)相應(yīng)的前臺(tái)界面,使用相同的 Servlet 統(tǒng)一處理,需要調(diào)用數(shù)據(jù)庫(kù)的操作統(tǒng)一提交到 JavaBean 類(lèi)中,通過(guò) JavaBean 連接操作數(shù)據(jù)庫(kù)的類(lèi)的方式進(jìn)行處理。商品信息具體包括商品名稱(chēng),商品類(lèi)型,商品價(jià)格,上架日期(系統(tǒng)自動(dòng)生成),商品數(shù)量,商品的圖片信息和商品簡(jiǎn)介等。 12 登 錄將 商 品 信 息 更 新 到 系 統(tǒng)將 商 品 信 息 從 系 統(tǒng) 刪 除生 成 日 志 信 息有 商 品 上 架有 商 品 下 架沒(méi) 有 商 品 下 架沒(méi) 有 商 品 上 架 圖 410 管理員管理商品的活動(dòng)圖 管理員管理訂單的時(shí)序圖 管理員登錄系統(tǒng)后可以對(duì)訂單進(jìn)行管理,具體包括訂單信息查看,發(fā)送未發(fā)送訂單,查看已發(fā)送訂單的詳細(xì)信息等操作。 ( 2) 在 Tomcat安裝目錄下的 conf目錄下 中最后的 ”/Host”標(biāo)記之前添加配置信息 : Context path=”/chaoshi” docBase=”chaoshi” debug=”5” reloadable=”true” crossContext=”true” workDir=”” Resource name=”jdbc/marketds” auth=”Container” type=”” maxActive=”100” maxIdle=”30” maxWait=”10000” username=”root” password=”” driverClassName=”” url=”jdbc: /Context ( 3) 在項(xiàng)目工程的 WEBINF 文件夾下的 中添加如下配置信息: resourceref description DB Connection/description 16 resrefnamejdbc/marketds/resrefname restype/restype resauthContainer/resauth /resourceref 6 代碼編寫(xiě) 及部分代碼分析 客戶(hù)主頁(yè) 開(kāi)發(fā) 為了界面統(tǒng)一及開(kāi)發(fā)的便利,考慮使用 frameset 標(biāo)記,將主頁(yè)面分成三部分。 主頁(yè)頁(yè)面中有一個(gè)“用戶(hù)登錄”超鏈接,主要實(shí)現(xiàn)單擊這個(gè)超鏈接進(jìn)入“用戶(hù)登錄”頁(yè)面的功能。 import .*。 public class CustomerServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { (request, response)。charset=gb2312)。 if (handlePage == null) { handlePage = new PaginationBean()。 } if ((denglu)) { String zname = (zname)。 + ame + 39。 String code=(code)。 (msg,msg)。 return。 return。 return。 () .getRequestDispatcher(/) .forward(request, response)。 之后的兩段代碼對(duì)傳到響應(yīng)頁(yè)面的中文進(jìn)行處理。 “ String sql = select ame from gcustomer where ame=39?!钡淖饔檬墙o出了從表中查詢(xún)相關(guān)用戶(hù)信息的 SQL語(yǔ)句,根據(jù)這句 SQL就可以調(diào)用 selectMsg()方法進(jìn)行查詢(xún)。是否有如下語(yǔ)句,如沒(méi)有則需手動(dòng)添加。 // 其中 mysql為數(shù)據(jù)源 jndi名稱(chēng) DataSource ds = (DataSource) initial .lookup(java:p/env/jdbc/marketds)。 // 獲取結(jié)果集的元數(shù)據(jù) ResultSetMetaData rsmd = ()。 i count。 } ()。 } return vtemp。 if ((user) == null) { ()。 + ame + 39。 pageForward(msg, request, response)。 String url = /。 } 21 } 客戶(hù)注銷(xiāo)功能開(kāi)發(fā) 客戶(hù)登錄后,就可以進(jìn)入其相應(yīng)的頁(yè)面對(duì)自己的信息進(jìn)行查詢(xún)和處理,當(dāng)其離開(kāi)本網(wǎng)上超市時(shí),需要注銷(xiāo)自己的身份,這樣有利于保護(hù)自己的信息,使其不被其他人所修改或者被黑客等實(shí)施惡意破壞。 ()。 String spw = (spw)。 String c = new String((), GB2312)。 if (s) { String msg = 網(wǎng)絡(luò)有重名,請(qǐng)重新 注冊(cè)??! 。 + ame + 39。 + c + 39。 22 (msg, msg)。 } } } 說(shuō)明:本模塊主要實(shí)現(xiàn)了新用戶(hù)的注冊(cè)功能開(kāi)發(fā):首先在界面的文本框中輸入信息,如果輸入的信息能夠通過(guò)本地驗(yàn)證,將進(jìn)行服務(wù)器驗(yàn)證:如果數(shù)據(jù)庫(kù)中表中已經(jīng)存在與用戶(hù)名文本框中輸入的用戶(hù)名相同的用戶(hù),將提示有重名,否則就會(huì)執(zhí)行注冊(cè)用戶(hù)信息的插入。 String apwd = (apwd).trim()。 boolean flag = (temp)。 + apwd + 39。 int i = (sql)。 () .getRequestDispatcher(/) .forward(request, response)。 try { Context initial = new InitialContext()。// 聲明語(yǔ)句 flag = (sql)。 } return flag。 分頁(yè)功能開(kāi)發(fā) 分頁(yè)顯示頁(yè)面中需要接收 Servlet 傳送的信息,其開(kāi)發(fā)過(guò)程如下:首先需要從 JavaBean中取出當(dāng)前頁(yè)、總頁(yè)數(shù)、 SQL 等信息,然后給請(qǐng)求設(shè)置參數(shù),最后進(jìn)行頁(yè)面跳轉(zhuǎn)。 } (p)。 String url = /。 } else if ((before)) { int p = ()。 VectorString[] vv = (p, sql)。 RequestDispatcher rd = (url)。其詳細(xì)開(kāi)發(fā)代碼如下所示。 String sql = select goodsid,goodsname,gprice,gtype,gimgurl,gamount + from goodsmessage where goodsname like 39。 (totolPage)。 } else { (vv, vv)。 (request, response)。 else if ((search)) { String gtype = (gtype).trim()。 sql = new String((), GB2312)。 VectorString[] vv = (1, sql)。 RequestDispatcher rd = (url)。 String sql = select 26 goodsid,goodsname,gtype,gprice,gdate,gamount, + gimgurl,gintroduction from goodsmessage where goodsid= + goodsid。 String url = /。 } 購(gòu)買(mǎi)商品功能開(kāi)發(fā) 前面對(duì)購(gòu)買(mǎi)功能進(jìn)行了簡(jiǎn)單介紹,本節(jié)將對(duì) 其進(jìn)行詳細(xì)介紹,具體代碼如下所示。 if (().equal
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1