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

正文內(nèi)容

java網(wǎng)上書(shū)店管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-文庫(kù)吧

2025-08-02 09:09 本頁(yè)面


【正文】 內(nèi)容。 第三階段是按照合同進(jìn)行商品交接、資金結(jié)算階段:這一階段是整個(gè)商品交易很關(guān)鍵的階段,不僅要涉及到資金在網(wǎng)上的正確、安全到位,同時(shí)也要涉及到商品配送的準(zhǔn)確、按時(shí)到位。在這個(gè)階段有銀行業(yè)、配送系統(tǒng)的介入,在技術(shù)上、法律上、標(biāo)準(zhǔn)上等等方面有更高的要求。網(wǎng)上交易的成功與否就在這個(gè)階段。 2 技術(shù)背景 JAVA 的網(wǎng)絡(luò)功能與編程 Java 是一種簡(jiǎn)單易用、完全面向?qū)ο?、具有平臺(tái)無(wú)關(guān)性且安全可靠的主要面向 Inter 的開(kāi)發(fā)工具。自從 1995 年正式問(wèn)世以來(lái), Java 的快速發(fā)展已經(jīng)讓整個(gè) Web 世界發(fā)生了翻天覆地的變化。在早期, Java 比較多的用在瀏覽器上,插入到網(wǎng)頁(yè)中 (即是 Java Applet 程序 ),成為最靈活、最強(qiáng)大的網(wǎng)頁(yè)多媒體的載體,但由于 Java 虛擬機(jī)相對(duì)于個(gè)人電腦而言,有占用資源大,安全性相對(duì)較差等缺點(diǎn), Applet 逐漸的被后起之秀 Flash 所替代,但隨著 Java Servlet 的推出,Java 在電子商務(wù)方面開(kāi)始嶄露頭角,最新的 JSP(Java Server Page)技術(shù)的推出,更是讓 Java 成為基于 Web的應(yīng)用程序的首選開(kāi)發(fā)工具,目前的 Java 技術(shù) 已成為所有大型電子商務(wù)項(xiàng)目的必然選擇。 Java 程序可以獲取網(wǎng)絡(luò)上結(jié)點(diǎn)的圖象、聲音、 HTML 文檔及文本等資源,并可以對(duì)獲得的資源進(jìn)行處理。例如 Java 程序可以每隔一定時(shí)間讀取某結(jié)點(diǎn)提供的最新數(shù)據(jù),并以圖表的形式顯示出來(lái)。在編程處理上,一般先生成一個(gè) URL類(lèi)型的對(duì)象,然后用 Java 中相應(yīng)的方法( method)獲取該對(duì)象所代表的資源。 Java Servlet 是 JSP 技術(shù)的基礎(chǔ), JSP 本身就是預(yù)先被編譯成 Servlet,然后再運(yùn)行的,而且大型的 Web 應(yīng)用程序的開(kāi)發(fā)需要 Java Servlet 和 JSP 配合才能完成, Servlet 這個(gè)名稱(chēng)大概源于 Applet,現(xiàn)在國(guó)內(nèi)的翻譯方式很多,本文為了避免 3 誤會(huì),本文直接采用 Servlet 這個(gè)名稱(chēng)而不做任何翻譯,讀者如果愿意,可以稱(chēng)之為 “小服務(wù)程序 ”。 Servlet 其實(shí)和傳統(tǒng)的 CGI 程序和 ISAPI、 NSAPI 等 Web 程序開(kāi)發(fā)工具的作用是相同的,在使用 Java Servlet 以后,用戶不必再使用效率低下的 CGI 方式,也不必使用只能在某個(gè)固定 Web 服務(wù)器平臺(tái)運(yùn)行的 API 方式來(lái)動(dòng)態(tài)生成 Web 頁(yè)面。許多 Web 服務(wù)器都支持 Servlet,即使不直接支持 Servlet的 Web 服務(wù)器也可以通過(guò)附加的應(yīng)用服務(wù)器和模塊來(lái)支持 Servlet。得益于 Java的跨平臺(tái)的特性, Servlet 也是平臺(tái)無(wú)關(guān)的,實(shí)際上,只要符合 Java Servlet 規(guī)范,Servlet 是完全平臺(tái)無(wú)關(guān)且是 Web 服務(wù)器無(wú)關(guān)的。由于 Java Servlet 內(nèi)部是以線程方式提供服務(wù),不必對(duì)于每個(gè)請(qǐng)求都啟動(dòng)一個(gè)進(jìn)程,并且利用多線程機(jī)制可以同時(shí)為多個(gè)請(qǐng)求服務(wù),因此 Java Servlet 效率非常高。但 Java Servlet 也不是沒(méi)有缺點(diǎn),和傳統(tǒng)的 CGI、 ISAPI、 NSAPI 方式相同, Java Servlet 是利 用輸出 HTML語(yǔ)句來(lái)實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)的,如果用 Java Servlet 來(lái)開(kāi)發(fā)整個(gè)網(wǎng)站,動(dòng)態(tài)部分和靜態(tài)頁(yè)面的整合過(guò)程簡(jiǎn)直就是一場(chǎng)噩夢(mèng)。這就是為什么 SUN 還要推出 Java Server Pages 的原因。 Struts 概述 Struts 框架工具是 Apache 基金會(huì) Jakarta 項(xiàng)目中推出的一個(gè)子項(xiàng)目。 Struts 在英文中是支架、支撐的意思,這也體現(xiàn)出 Struts 在開(kāi)發(fā) Web 應(yīng)用程序過(guò)程所起到的重要作用, Struts 為 Web 應(yīng)用提供了通用的框架,讓開(kāi)發(fā)人員可以把主要精力 集中在如何解決實(shí)際業(yè)務(wù)問(wèn)題上,與此同時(shí) Struts 框架也允許開(kāi)發(fā)人員根據(jù)實(shí)際需要進(jìn)行擴(kuò)展和定制,從而可以更好的適應(yīng)用戶的需求。采用 Struts 可以簡(jiǎn)化遵循 MVC 設(shè)計(jì)模式的 Web 應(yīng)用的開(kāi)發(fā)工作,很好地實(shí)現(xiàn)代碼重用,使開(kāi)發(fā)人員從一些繁瑣的工作中解脫出來(lái),快速開(kāi)發(fā)能夠充分發(fā)揮 JSP/Servlet 優(yōu)點(diǎn)、并具有強(qiáng)可擴(kuò)展性的 Web 應(yīng)用。總之, Struts 的出現(xiàn)使得 Web 應(yīng)用的開(kāi)發(fā)過(guò)程大大簡(jiǎn)化,從而能夠縮短開(kāi)發(fā)周期、提高開(kāi)發(fā)效率。 Struts 架構(gòu)一經(jīng)推出,即受到 Java 開(kāi)發(fā) 群體的廣泛重視,從 2020 年開(kāi)始逐漸升溫,并日漸成為 Java 創(chuàng)建 Web 應(yīng)用開(kāi)發(fā)的最流行的框架工具,在目前 Java Web 程序員的招聘要求中,幾乎都提出了對(duì) Struts 的要求,精通 Struts 架構(gòu)已經(jīng)成為 Java Web 程序員必備的技能。 4 模型 視圖 控制器( MVC)是 80 年代 Smalltalk80 出現(xiàn)的一種軟件設(shè)計(jì)模式,現(xiàn)在已經(jīng)被廣泛的使用。 模型( Model) 模型是應(yīng)用程序的主體部分。模型表示業(yè)務(wù)數(shù)據(jù),或者業(yè)務(wù)邏輯 . 視圖( View) 視圖是應(yīng)用程 序中用戶界面相關(guān)的部分,是用戶看到并與之交互的界面。 控制器( Controller) 控制器工作就是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示和更新 model對(duì)象狀態(tài) 圖 MVC 組件類(lèi)型的關(guān)系和功能 MVC 式的出現(xiàn)不僅實(shí)現(xiàn)了功能模塊和顯示模塊的分離,同時(shí)它還提高了應(yīng)用系統(tǒng)的可維護(hù)性、可擴(kuò)展性、可移植性和組件的可復(fù)用性。 早期的程序中,如果不注意對(duì)數(shù)功能和顯示的解耦合,常常會(huì)導(dǎo)致程序的復(fù)雜及難以維護(hù)。很多 VB,Delphi 等 RAD 程序都有這種問(wèn)題 。甚至現(xiàn)在的 C,Java有時(shí)候也會(huì)出現(xiàn)把業(yè)務(wù)邏輯寫(xiě)在顯示模塊中的現(xiàn)象。 盡管 MVC 設(shè)計(jì)模式很早就提出,但在 Web項(xiàng)目的開(kāi)發(fā)中引入 MVC卻是步履維艱。主要原因:一是在早期的 Web 項(xiàng)目的開(kāi)發(fā)中,程序語(yǔ)言和 HTML 的分離一直難以實(shí)現(xiàn)。 CGI 程序以字符串輸出的形式動(dòng)態(tài)地生成 HTML 內(nèi)容。后來(lái)隨著腳本語(yǔ)言的出現(xiàn),前面的方式又被倒了過(guò)來(lái),改成將腳本語(yǔ)言書(shū)寫(xiě)的程序嵌入在 HTML內(nèi)容中。這兩種方式有一個(gè)相同的不足之處即它們總是無(wú)法將程序語(yǔ)言和 HTML 5 分離。二是腳本語(yǔ)言的功能相對(duì)較弱,缺乏支持 MVC 設(shè)計(jì)模式的一些必要的技術(shù)基礎(chǔ)。直到基于 J2EE 的 JSP Model 2 問(wèn)世時(shí)才得以改觀。它用 JSP 技術(shù)實(shí)現(xiàn)視圖的功能,用 Servlet 技術(shù)實(shí)現(xiàn)控制器的功能,用 JavaBean 技術(shù)實(shí)現(xiàn)模型的功能 。 SUN 在 JSP 出現(xiàn)早期制定了兩種規(guī)范,稱(chēng)為 Model1 和 Model2。雖然 Model2 在一定 程 度 上 實(shí) 現(xiàn) 了 MVC , 但 是 它 的 應(yīng) 用 用 并 不 盡 如 人 意 。 圖 JSP Model 1 圖 JSP Model 2 model2 容易使系統(tǒng)出現(xiàn)多個(gè) Controller,并且對(duì)頁(yè)面導(dǎo)航的處理比較復(fù)雜 有些人覺(jué)得 model2 仍不夠好,于是 Craig R. McClanahan 2020 年 5 月 提交了一 個(gè) WEB framework 給 Java Struts。 2020 年 7 月, ,正式發(fā)布。該項(xiàng)目也成為了 Apache Jakarta 的子項(xiàng)目之一 。 Struts 質(zhì)上就是在 Model2 的基礎(chǔ)上實(shí)現(xiàn)的一個(gè) MVC 架構(gòu)。它只有一個(gè)中心控制器,他采用 XML 定制轉(zhuǎn)向的 URL。采用 Action 來(lái)處理邏輯。 6 Struts 跟 Tomcat、 Turbine 等諸多 Apache 項(xiàng)目一樣,是開(kāi)源軟件,這是它 的一大優(yōu)點(diǎn)。使開(kāi)發(fā)者能更深入的了解其內(nèi)部實(shí)現(xiàn)機(jī)制。 除此之外, Struts 的優(yōu)點(diǎn)主要集中體現(xiàn)在兩個(gè)方面: Taglib 和頁(yè)面導(dǎo)航 Taglib 是 Struts 的標(biāo)記庫(kù),靈活動(dòng)用,能大大提高開(kāi)發(fā)效率。另外,就目前國(guó)內(nèi)的 JSP 開(kāi)發(fā)者而言,除了使用 JSP 自帶的常用標(biāo)記外,很少開(kāi)發(fā)自己的標(biāo)記,或許 Struts 是一個(gè)很好的起點(diǎn)。 關(guān)于頁(yè)面導(dǎo)航,我認(rèn)為那將是今后的一個(gè)發(fā)展方向,事實(shí)上,這樣做,使 系統(tǒng)的脈絡(luò)更加清晰。通過(guò)一個(gè)配置文件,即可把握整個(gè)系統(tǒng)各部分之間的聯(lián)系, 這對(duì)于后期的維護(hù)有著莫大的好處。尤其是當(dāng)另一批開(kāi)發(fā)者接手這個(gè)項(xiàng)目時(shí),這 種優(yōu)勢(shì)體現(xiàn)得更加明顯。 Taglib 是 Struts 的一大優(yōu)勢(shì),但對(duì)于初學(xué)者而言,卻需要一個(gè)持續(xù)學(xué)習(xí)的過(guò)程,甚至還會(huì)打亂你網(wǎng)頁(yè)編寫(xiě)的習(xí)慣,但是,當(dāng)你習(xí)慣了它時(shí),你會(huì)覺(jué)得它真的很棒。 Struts 將 MVC 的 Controller 一分為三,在獲得結(jié)構(gòu)更加清晰的同時(shí),也增加了系統(tǒng)的復(fù)雜度。 Struts 從產(chǎn)生到現(xiàn)在 才不過(guò)六七 年,但已 廣泛 運(yùn)用于商業(yè)軟件。雖然它現(xiàn)在還有不少缺點(diǎn),但它是一種非常優(yōu)秀的 J2EE MVC 實(shí)現(xiàn)方式 。 下圖是 Struts 的工作流程,所有的請(qǐng)求都提交給 ActionServlet 來(lái)處理 。 7 圖 action 控制流程圖 ActionServlet 是一個(gè) FrontController,它是一個(gè)標(biāo)準(zhǔn)的 Servlet,它將request 轉(zhuǎn)發(fā)給 RequestProcessor 來(lái)處理, ActionMapping 是 ActionConfig 的子類(lèi),實(shí)質(zhì)上是對(duì) 的一個(gè)映射,從中可以取得所有的配置信息 RequestProcessor 根據(jù)提交 過(guò)來(lái)的 url,如 *.do,從 Action Mapping 中得到相應(yīng)的 ActionForm 和 Action。然后將 request 的參數(shù)對(duì)應(yīng)到 Action Form 中,進(jìn)行 form 驗(yàn)證。如果驗(yàn)證通過(guò)則調(diào)用 Action 的 execute()方法來(lái)執(zhí)行 Action,最終返回 ActionForward。 ActionForward 是對(duì) mapping 中一個(gè) forward 的包裝,對(duì)應(yīng)于一個(gè) url ActionForm 使用了 ViewHelper 模式,是對(duì) HTML 中 form 的一個(gè)封裝 。其中包含有 validate 方法,用于驗(yàn)證 form 數(shù)據(jù)的有效性。 Action Form 是一個(gè)符合 Java Bean 規(guī)范的類(lèi),所有的屬性都應(yīng)滿足 get 和 set 對(duì)應(yīng)。對(duì)于一些復(fù)雜的系統(tǒng),還可以采用 DynaActionForm 來(lái)構(gòu)造動(dòng)態(tài)的 Form,即通過(guò)預(yù)制參數(shù)來(lái)生成 Form。這樣可以更靈活的擴(kuò)展程序。 ActionErrors是對(duì)錯(cuò)誤信息的包裝,一旦在執(zhí)行 action或者 中出現(xiàn)異常,即可產(chǎn)生一個(gè) ActionError 并最終加入到 ActionErrors。在 Form驗(yàn)證的過(guò)程中,如果有 Error 發(fā)生,則會(huì)將頁(yè)面重新導(dǎo)向至輸入頁(yè),并提示錯(cuò)誤。 8 Action 是用于執(zhí)行業(yè)務(wù)邏輯的 RequsestHandler。每個(gè) Action 都只建立一個(gè) instance。 Action 不是線程安全的,所以不應(yīng)該在 Action 中訪問(wèn)特定資源。一般來(lái)說(shuō),應(yīng)改使用 Business Delegate 模式來(lái)對(duì) Business tier 進(jìn)行訪問(wèn)以解除耦合。 Struts 提供了多種 Action 供選擇使用。普通的 Action 只能通過(guò)調(diào)用execute 執(zhí)行一項(xiàng)任務(wù),而 DispatchAction 可以根據(jù)配置參數(shù)執(zhí)行,而不是僅進(jìn)入 execute()函數(shù),這樣可以執(zhí)行多種任務(wù)。如 insert,update 等。LookupDispatchAction 可以根據(jù)提交表單按鈕的名稱(chēng)來(lái)執(zhí)行函數(shù)。 3 網(wǎng)上書(shū)店詳細(xì)設(shè)計(jì) 需求分析 網(wǎng)上書(shū)店系統(tǒng)主要是實(shí)現(xiàn)網(wǎng)上選書(shū)、購(gòu)書(shū)、產(chǎn)生訂單等功能的系統(tǒng)。一個(gè)典型的網(wǎng)上商城一般都需要實(shí)現(xiàn)商品信息的動(dòng)態(tài)提示、購(gòu)物車(chē)管理、客戶信息注冊(cè)登錄管理、訂單處理等模塊。 (1)查詢(xún):當(dāng)客戶進(jìn)入網(wǎng)上書(shū)店時(shí),應(yīng)該在主頁(yè)面中分類(lèi)顯示最新的書(shū)目 信息,以供客戶選擇所需圖書(shū),同時(shí)也應(yīng)該提供按照?qǐng)D書(shū)名稱(chēng),或者作者 信息快速查詢(xún)所需書(shū)目信息的功能。 (2)購(gòu)物車(chē)管理:當(dāng)客戶選擇購(gòu)買(mǎi)某圖書(shū)產(chǎn)品時(shí),應(yīng)該能夠?qū)?duì)應(yīng)圖書(shū)信息,如:價(jià)格、數(shù)量記錄到對(duì)應(yīng)的購(gòu)物車(chē)中,并允許客戶返回書(shū)目查詢(xún)頁(yè)面,選擇其他商品,并添加到購(gòu)物車(chē)中,當(dāng)對(duì)應(yīng)的購(gòu)物訂單生成后,應(yīng)該能夠自動(dòng)清除以生成訂單的購(gòu)物車(chē)中的信息。 (3)訂單處理:對(duì)應(yīng)客戶購(gòu)買(mǎi)圖書(shū)商品信息的需求,在確定了所購(gòu)圖書(shū)商品的價(jià)格、數(shù)量等信息后,提示用戶選擇對(duì)應(yīng)的送貨方式及付款方式,最終生成對(duì)應(yīng)的訂單記錄,以便于網(wǎng)站配貨人員依據(jù)訂單信息進(jìn)行后續(xù)的出貨、送貨的處理。 (4)會(huì)員注冊(cè):為了能夠?qū)崿F(xiàn) 圖書(shū)商品的購(gòu)買(mǎi),需要管理客戶相關(guān)的聯(lián)系方式、送貨地點(diǎn)等相關(guān)的信息。 9 總體設(shè)計(jì) 下表中給出了構(gòu)成網(wǎng)上書(shū)店系統(tǒng)的各個(gè)組件,通過(guò)下表,可以從宏觀上了解各個(gè)組件
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1