【正文】
Struts 可以簡(jiǎn)化遵循 MVC 設(shè)計(jì)模式的 Web 應(yīng)用的開發(fā)工作,很好地實(shí)現(xiàn)代碼重用,使開發(fā)人員從一些繁瑣的工作中解脫出來,快速開發(fā)能夠充分發(fā)揮 JSP/Servlet 優(yōu)點(diǎn)、并具有強(qiáng)可擴(kuò)展性的 Web 應(yīng)用。Servlet其實(shí)和傳統(tǒng)的CGI程序和ISAPI、NSAPI等Web程序開發(fā)工具的作用是相同的,在使用Java Servlet以后,用戶不必再使用效率低下的CGI方式,也不必使用只能在某個(gè)固定Web服務(wù)器平臺(tái)運(yùn)行的API方式來動(dòng)態(tài)生成Web頁面。JAVA語言簡(jiǎn)介 Java是一種簡(jiǎn)單易用、完全面向?qū)ο?、具有平臺(tái)無關(guān)性且安全可靠的主要面向Internet的開發(fā)工具。許多Web服務(wù)器都支持Servlet,即使不直接支持Servlet的Web服務(wù)器也可以通過附加的應(yīng)用服務(wù)器和模塊來支持Servlet??傊?, Struts 的出現(xiàn)使得 Web 應(yīng)用的開發(fā)過程大大簡(jiǎn)化,從而能夠縮短開發(fā)周期、提高開發(fā)效率。甚至現(xiàn)在的C,Java有時(shí)候也會(huì)出現(xiàn)把業(yè)務(wù)邏輯寫在顯示模塊中的現(xiàn)象 管MVC設(shè)計(jì)模式很早就提出,但在Web項(xiàng)目的開發(fā)中引入MVC卻是步履維艱。雖然Model2在一定程度上實(shí)現(xiàn)了MVC,但是它的應(yīng)用用并不盡如人意 JSP Model 1 JSP Model 2 model2 容易使系統(tǒng)出現(xiàn)多個(gè)Controller,并且對(duì)頁面導(dǎo)航的處理比較復(fù)雜 有些人覺得model2仍不夠好,于是Craig R. McClanahan 2000年5月 提交了一個(gè)WEB framework給Java . 2001年7月,正式發(fā)布。除此之外,Struts的優(yōu)點(diǎn)主要集中體現(xiàn)在兩個(gè)方面:Taglib和頁面導(dǎo)航。缺點(diǎn):33 Struts的工作流程下圖是Struts的工作流程,所有的請(qǐng)求都提交給ActionServlet來處理。這樣可以更靈活的擴(kuò)展程序。普通的Action只能通過調(diào)用execute執(zhí)行一項(xiàng)任務(wù),而DispatchAction可以根據(jù)配置參數(shù)執(zhí)行,而不是僅進(jìn)入execute()函數(shù),這樣可以執(zhí)行多種任務(wù)。D. 會(huì)員注冊(cè):為了能夠?qū)崿F(xiàn)圖書商品的購買,需要管理客戶相關(guān)的聯(lián)系方式、送貨地點(diǎn)等相關(guān)的信息。4.訂單處理根據(jù)客戶購物車中的信息,以及客戶所選擇的送貨方式和付款方式,連同客戶對(duì)應(yīng)的個(gè)人信息生成訂單,以便于后續(xù)進(jìn)行送貨處理。CREATE TABLE bookcat( id NUMBER PRIMARY KEY, catname VARCHAR2 (40) NOT NULL)。CREATE TABLE orderdetail( orderid NUMBER NOT NULL REFERENCES orders(id) ON DELETE CASCADE, bookid NUMBER NOT NULL REFERENCES book(id) ON DELETE CASCADE, count NUMBER NOT NULL, price NUMBER NOT NULL)。同時(shí)提供更新購物車的操作界面,例如,可以輸入購買數(shù)量或者選擇刪除購買記錄。368 l 獲取該用戶所有歷史訂單信息l 顯示訂單信息信息列表l 顯示訂單編號(hào)、時(shí)間、總價(jià)l 提交取消訂單請(qǐng)求的超鏈接l 提交返回購書請(qǐng)求的超鏈接本頁面將顯示與當(dāng)前用戶相關(guān)的所有訂單信息。375 封裝了購物車信息處理的bean()為了能夠簡(jiǎn)化類的定義,考慮到購物車中所需要處理的圖書基本信息與圖書類型對(duì)象中封裝的信息相同,只是需要再補(bǔ)充上購買數(shù)量即可,因此在定義該類時(shí)繼承了圖書信息類。Action入口ActionForm出口BookSearchActionBookSearchFormBookDetailActionBookIdFormPageCtrlActionPageIdFormLoginActionLoginFormRegistActionUserFormBookBuyActionBookIdFormUpdateShopCartActionBookShopCartFormClearShopCartActionAddrConfirmActionDeliveryFormOrderHistoryActionOrderDelActionOrderIdForm該程序負(fù)責(zé)處理查詢顯示滿足條件圖書書目信息時(shí)提交的“”請(qǐng)求該程序負(fù)責(zé)處理分頁顯示圖書書目信息時(shí)進(jìn)行頁面跳轉(zhuǎn)時(shí)提交的“”請(qǐng)求。該程序負(fù)責(zé)處理從確認(rèn)訂單頁面提交查看所有訂單信息的“”請(qǐng)求。總結(jié)本文講述了Java/JSP/Struts在WEB應(yīng)用的一些基本知識(shí),并通過網(wǎng)上書店的程序?qū)SP的運(yùn)用進(jìn)行了深化,從本文中可看出JSP與Struts框架結(jié)合的模式,在電子商務(wù)上應(yīng)用十分靈活,不過要真正掌握好它們卻并不是一件容易的事情,在實(shí)際應(yīng)用的WEB開發(fā)中,還有很多關(guān)于安全方面的問題需要考慮。該程序負(fù)責(zé)處理購買圖書時(shí)提交的“”請(qǐng)求。此外,也提供了計(jì)算該訂單所涉及總金額的方法。37 業(yè)務(wù)邏輯層各bean功能在本系統(tǒng)的業(yè)務(wù)邏輯層中分別完成了對(duì)圖書信息、圖書分類信息、購物車信息、訂單信息以及客戶信息等類型對(duì)象的保存和處理。此外,也可以單擊“繼續(xù)購書”按鈕,提交“”請(qǐng)求返回網(wǎng)上書店主頁面繼續(xù)購書,或者單擊“清空購物車”按鈕提交“”請(qǐng)求。當(dāng)選擇了查詢依據(jù),并且輸入了對(duì)應(yīng)關(guān)鍵字,單擊“搜索”按鈕時(shí),將提交“”請(qǐng)求,同時(shí)提交查詢條件,進(jìn)行后續(xù)書目信息搜索的處理。CREATE TABLE book( id NUMBER PRIMARY KEY, catid NUMBER NOT NULL REFERENCES bookcat(id) ON DELETE CASCADE, name VARCHAR2 (50) NOT NULL, price NUMBER